我已经向mysql数据库发送了很多查询,所以当它停止工作时它会让我进行循环。我只想插入文本和int和十进制信息。语法在某处错了吗?它会抛出此错误消息,但我不知道这意味着什么!
错误消息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'long) VALUES (jpeg.jpg,1410700,image/jpeg,1372713379,42.978852222222,-86.0356041' at line 1
name,type,datetime table列是varchar
size is int
lat和long是小数(14,12)和(15,12)
我尝试了许多不同的查询变体,尝试将其发送到我的localhost wampserver。如果你看到我错过了什么,请告诉我。谢谢!
$conn = mysqli_connect("localhost", "root", "password", "databaseimage") or die('Error Connecting.');
$sql = "INSERT INTO `images` (name,size,type,datetime,lat,long) VALUES ($imageName,$imageSize,$imageType,$datetime,$lat,$long)";
if(mysqli_query($conn, $sql)) {
echo "Added to database successfully!";
} else {
echo "Error sending query!";
printf("\nErrormessage: %s\n", mysqli_error($conn));
}
我已经尝试过有没有“标记”。 我用每个变量周围的单引号试了一下。 我试过发送原始数据,但仍然出错。
答案 0 :(得分:4)
LONG是一个mySQL保留词: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
修复它的一种方法是将这些单词包装在反引号中:
INSERT INTO `images` (name,size,type,datetime,lat,`long`) VALUES ('$imagename'....
但是如果可以的话,最好避免使用保留字作为列名或表名 - 如你所发现的那样,它会导致像这样的奇怪情况。
答案 1 :(得分:0)
查询应该看起来像
$sql = "INSERT INTO `images` (name,size,type,datetime,lat,`long`) VALUES ('$imageName',$imageSize,'$imageType','$datetime',$lat,$long)";