第一行的SQL语法错误 - 查询与工作的查询相同但是?

Jac*_*McG 0 php mysql sql

错误:SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便'Order, Name, URL, UserName, Password, SiteName, Notes) VALUES ('','','','','','在第1行附近使用正确的语法

sql与工作插入查询完全相同; 除了字段/表名称.

这是代码:

<?php
$con = mysqli_connect('HOST', 'USER', 'PASS','DATABASE');
if (!$con)
{
    die('Could not connect: ' . mysqli_error());
}
$sql="INSERT INTO RemoteLinks (Order, Name, URL, UserName, Password, SiteName, Notes) VALUES('$_POST[Order]','$_POST[Name]','$_POST[URL]','$_POST[UserName]','$_POST[Password]','$_POST[SiteName]','$_POST[Notes]')";

if (!mysqli_query($con,$sql))
{
    die('Error: ' . mysqli_error($con));
}

header('Location: ' . $_SERVER['HTTP_REFERER']);
mysqli_close($con);
?>
Run Code Online (Sandbox Code Playgroud)

不太确定为什么这不起作用,因为它在类似的查询中工作.感谢您的帮助,对此表示赞赏.

blu*_*lue 6

ORDER是按顺序使用的保留字- 用反引号环绕"`"

更新

这是MySQL中的保留字列表.

您通常希望避免使用反引号来逃避这些保留字,因为反引号会降低代码的可移植性.因此,您可能需要学习这些内容并将其他单词用于列名,表,数据库等.

重要

你绝对应该使用mysqli_prepare()mysqli_stmt_bind_param()!

  • 由于此时表是一张空白表我更改了列名以保存以后的任何麻烦.感谢每个人的帖子,虽然发布的所有内容都非常有用,仍然在学习. (2认同)