0

我已经向 mysql 数据库发送了很多查询,所以当它停止工作时它让我陷入了一个循环。我只是想插入文本和整数和十进制信息。语法有问题吗?它抛出此错误消息,但我不知道它是什么意思!

错误信息:

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

名称、类型、日期时间表列是 varchar

大小是 int

lat 和 long 是小数(14,12)和(15,12)

我尝试了许多不同的查询变体来尝试将其发送到我的本地主机 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));
 }

我试过带和不带``标记。我已经尝试在每个变量周围加上单引号。我试过只发送原始数据,但仍然出错。

4

2 回答 2

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'....

但是,如果可以的话,最好避免使用保留字作为列名或表名——正如您所发现的那样,它会导致这样的奇怪情况。

于 2013-07-02T23:30:37.880 回答
0

查询应该看起来像

$sql = "INSERT INTO `images` (name,size,type,datetime,lat,`long`) VALUES ('$imageName',$imageSize,'$imageType','$datetime',$lat,$long)";
于 2013-07-02T23:29:42.217 回答