我有查询错误,说:
INSERT到'slide'('image_name')VALUES('image / 29-07-2014-1406653546.jpg')== ---->中的错误您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行''slide'('image_name')VALUES('image / 29-07-2014-1406653546.jpg')附近使用正确的语法
如何解决? 这是我的代码:
<?php
include("config.php");
function GetImageExtension($imagetype)
{
if(empty($imagetype)) return false;
switch($imagetype)
{
case 'image/bmp': return '.bmp';
case 'image/gif': return '.gif';
case 'image/jpeg': return '.jpg';
case 'image/png': return '.png';
default: return false;
}
}
if (!empty($_FILES["uploadedimage"]["name"])) {
$file_name=$_FILES["uploadedimage"]["name"];
$temp_name=$_FILES["uploadedimage"]["tmp_name"];
$imgtype=$_FILES["uploadedimage"]["type"];
$ext= GetImageExtension($imgtype);
$imagename=date("d-m-Y")."-".time().$ext;
$target_path = "image/".$imagename;
if(move_uploaded_file($temp_name, $target_path)) {
$query_upload="INSERT into 'slides' ('image_name') VALUES
('$target_path')";
mysql_query($query_upload) or die("error in $query_upload == ----> ".mysql_error());
}
else{
exit("Error While uploading image on the server");
}
}
?>;
答案 0 :(得分:3)
这是因为您在table and column identifiers周围使用了引号。
INSERT into 'slides' ('image_name')
^ ^ ^ ^
删除引号或用反引号替换它们。
旁注: 使用反引号``
确保您使用{{3}可能(意外地或不知不觉地)或者,列名之间的空格或连字符,这是不鼓励的做法。
虽然情况并非如此(在您的代码中找不到保留字),但使用它们是偏好/个人品味的问题。
所以,就这样做:
INSERT into `slides` (`image_name`) ...
或
INSERT into slides (image_name) ...
两者都有效。
<强> 脚注: 强>
您现有的代码向MySQL reserved word开放
请与SQL injection一起使用mysqli_*
with prepared statements或PDO。
答案 1 :(得分:1)
尝试:
$query_upload="INSERT into `slides` (`image_name`) VALUES ('$target_path')";
这是因为你想使用反向标记(`)来转义命名的列和表,以及值的单引号。