![](/img/trans.png)
[英]Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax
[英]getting error “Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064”
我收到此錯誤 = 未捕獲的 PDOException:SQLSTATE[42000]:語法錯誤或訪問沖突:1064 您的 SQL 語法有錯誤; 檢查與您的 MariaDB 服務器版本相對應的手冊,了解在 '492x328BG5eb39cafa1826.jpg'),('492x328BG5ecbf5f78bd50.jpg'),('492x328BG5edda064e'.....每次我發布的時間附近使用的正確語法
require_once "dbconnect.inc.php";
$errors = array();
$success = array();
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
$subdir = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890') , 0 , 10 );
$path="uploads";
mkdir($path."/$subdir",0777,true);
$uploadDir = 'uploads/'.$subdir.'/';
$allowTypes = array('jpg','png','jpeg','gif');
if(!empty(array_filter($_FILES['files']['name']))){
foreach($_FILES['files']['name'] as $key=>$val){
$filename = basename($_FILES['files']['name'][$key]);
$targetFile = $uploadDir.$filename;
if(move_uploaded_file($_FILES["files"]["tmp_name"][$key], $targetFile)){
$success[] = "Uploaded $filename";
$insertQrySplit[] = "('$filename')";
}
else {
$errors[] = "Something went wrong- File - $filename";
}
}
//Inserting to database
if(!empty($insertQrySplit)) {
$query = implode(",",$insertQrySplit);
$file_path = $path."/$subdir/";
$sql = ("INSERT INTO upload_images (image,path) VALUES ('".$query."','".$file_path."')");
$stmt= $conn->prepare($sql);
$stmt->execute();
}
}
else {
$errors[] = "No File Selected";
}
}
?>
<!doctype html>
<html lang="en" class="h-100">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Ajax Upload</title>
<!-- Bootstrap core CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.css" rel="stylesheet">
<style>
.formSmall {
width: 500px;
margin: 20px auto 20px auto;
}
.message {
padding:10px;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-7">
<h5 class="text-align"> Upload Form</h5>
</div>
<?php if(!empty($success)):?>
<div class="alert alert-success" role="alert">
<ul>
<?php foreach ($success as $val):?>
<li><?php print $val?></li>
<?php endforeach;?>
</ul>
</div>
<?php endif;?>
<!-- Error listing-->
<?php if(!empty($errors)):?>
<div class="alert alert-danger" role="alert">
<ul>
<?php foreach ($errors as $val):?>
<li><?php print $val?></li>
<?php endforeach;?>
</ul>
</div>
<?php endif;?>
<div class="col-lg-7">
<form action="" method="post" enctype="multipart/form-data">
<label>Select Image(s):</label>
<input type="file" name="files[]" multiple >
<br>
<input type="submit" name="submit" value="Upload">
</form>
</div>
</div><!-- .row -->
</div>
</body>
</html>```
您正在使用'
來啟動您的圖像值,對於他的內容,您需要在要存儲在數據庫中的'
中使用\\
。
在您的 php 代碼中,只需更改行:
$insertQrySplit[] = "('$filename')";
對此:
$insertQrySplit[] = "(\'$filename\')";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.