我正在开发一个将图像上传到服务器的脚本,以及MySQL数据库的路径。当我提交此内容时,会出现此错误:
INSERT进入'images_tbl'('images_path')VALUES时出现错误 ('images / 05-12-2014-1417785023.png')== ---->你有错误 你的SQL语法;查看与MySQL对应的手册 在''images_tbl'附近使用正确语法的服务器版本 ('images_path')VALUES('images / 05-12-2014-1417785023.png')'在第1行
以下是代码:
<?php
include("mysqlconnect.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 = "images/".$imagename;
if(move_uploaded_file($temp_name, $target_path)) {
$query_upload="INSERT into 'images_tbl' ('images_path') 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 :(得分:2)
应该是 -
"INSERT into images_tbl (images_path) VALUES ('".$target_path."')";
OR
"INSERT into `images_tbl` (`images_path`) VALUES ('".$target_path."')";
删除'
。这不是必需的。
答案 1 :(得分:2)
您将表名指定为简单字符串。替换&#39;用`或删除它。
INSERT into `images_tbl` (`images_path`) VALUES
答案 2 :(得分:2)
标识符引号是反引号而不是单引号:
INSERT into 'images_tbl' ('images_path')
^ ^ ^
你可以放弃它们。
INSERT into images_tbl (images_path)
// or
INSERT into `images_tbl` (`images_path`)
强制性注释:
Please, don't use
mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
以下是mysqli用法的简短示例:
$db = new mysqli('localhost', 'username', 'password', 'database');
$query_upload = 'INSERT INTO images_tbl (images_path) VALUES (?)';
$insert = $db->prepare($query_upload);
$insert->bind_param('s', $target_path);
$insert->execute();
答案 3 :(得分:1)
您将表名指定为字符串。
$query_upload="INSERT into 'images_tbl' ('images_path') VALUES ('".$target_path."')";
尝试以下代码
$query_upload="INSERT into images_tbl ('images_path') VALUES ('".$target_path."')";
希望这会对你有所帮助。