此查询中的SQL语法错误在哪里?

时间:2011-01-11 08:12:03

标签: php sql mysql

mysqli_error()明确指出:

  

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'group,uploaded_by,date_uploaded,url'附近使用正确的语法                       VALUES(1,1,NOW(),'/ gallery / 1 / h'在第2行

但这是生成的SQL查询

INSERT INTO
gallery_images (group, uploaded_by, date_uploaded, url)
VALUES (1, 1, NOW(), '/gallery/1/halflife2180z97stmydo1600x1200.jpg')

它与我在同一站点上运行的另一个SQL查询几乎完全相同,没有错误。

我会理解,如果我试图在MySQL中的字段中插入无效值,但它明确指出我有语法错误,而我却看不到它。< / p>

如果你能看到,请回复。下面是查询背后的PHP


$res = $con->query("
        INSERT INTO
        gallery_images (group, uploaded_by, date_uploaded, url)
        VALUES ($group, {$_SESSION[user]->id}, NOW(), '$escaped_name')
    ");

6 个答案:

答案 0 :(得分:4)

group是保留关键字。把反叛放在它周围。

$res = $con->query("
        INSERT INTO
        gallery_images (`group`, uploaded_by, date_uploaded, url)
        VALUES ($group, {$_SESSION[user]->id}, NOW(), '$escaped_name')
    ");

答案 1 :(得分:1)

组是保留关键字,更改该列名称。

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

答案 2 :(得分:0)

group是保留的MySQL关键字,你不能那样使用它。用反引号`group`(1键附近的符号)

包围它

答案 3 :(得分:0)

gallery_images (group, uploaded_by, date_uploaded, url)

群组是关键字

答案 4 :(得分:0)

$res = $con->query("
        INSERT INTO
        gallery_images (`group`, `uploaded_by`, `date_uploaded`, `url`)
        VALUES ($group, {$_SESSION[user]->id}, NOW(), '$escaped_name')
    ");

应该这样做。

答案 5 :(得分:0)

group是MySQL中的reserved word。你可能不得不把它放在引号中:

INSERT INTO
gallery_images (`group`, uploaded_by, date_uploaded, url)
VALUES (1, 1, NOW(), '/gallery/1/halflife2180z97stmydo1600x1200.jpg')