PHP/MySQL:查询未处理(第1行x附近的语法错误)

PHP/MySQL:查询未处理(第1行x附近的语法错误),php,mysql,syntax-error,reserved-words,Php,Mysql,Syntax Error,Reserved Words,嘿。。。因此,我尝试运行下面的查询,但它无法运行。我查过: 表单中的字段数与表中的字段数匹配 会话变量的数量也与这些数字匹配 实际查询包含要使用回显输入的数据 表名是否正确 查询与同一数据库中的其他表一起工作(它们确实如此) 使用或死亡(mysql_error();获取“错误语法”错误 多次重建表 这句话显然在语法上有问题,如果你能看到它有什么错误,或者给我指出正确的方向,我会非常高兴,因为我现在不知所措!这可能是一个记忆问题吗 $sql = "INSERT INTO careBoiler

嘿。。。因此,我尝试运行下面的查询,但它无法运行。我查过:

  • 表单中的字段数与表中的字段数匹配
  • 会话变量的数量也与这些数字匹配
  • 实际查询包含要使用回显输入的数据
  • 表名是否正确
  • 查询与同一数据库中的其他表一起工作(它们确实如此)
  • 使用或死亡(mysql_error();获取“错误语法”错误
  • 多次重建表
这句话显然在语法上有问题,如果你能看到它有什么错误,或者给我指出正确的方向,我会非常高兴,因为我现在不知所措!这可能是一个记忆问题吗

$sql = "INSERT INTO careBoiler (buyerID, date, sector, require, boilerMake, boilerModel, boilerType, heating, visit, deadline, budget, currcompany, specificreq) VALUES ('{$_SESSION['buyerID']}', now(), '{$_SESSION['cb']['sector']}', '{$_SESSION['cb']['require']}', '{$_SESSION['cb']['boilerMake']}', '{$_SESSION['cb']['boilerModel']}', '{$_SESSION['cb']['boilerType']}', '{$_SESSION['cb']['heating']}', '{$_SESSION['cb']['visit']}', '{$_SESSION['cb']['deadline']}', '{$_SESSION['cb']['budget']}', '{$_SESSION['cb']['currcompany']}', '{$_SESSION['cb']['specificreq']}')";

看起来,
require
是一个列名称

要解决此问题,您可以选择其他列名或将其放在后面的刻度中,如下所示:

$sql = "INSERT INTO careBoiler (buyerID, date, sector, `require`,...
                                                       ^       ^

看起来,
require
是一个列名称

要解决此问题,您可以选择其他列名或将其放在后面的刻度中,如下所示:

$sql = "INSERT INTO careBoiler (buyerID, date, sector, `require`,...
                                                       ^       ^

作为一种通用的php/mysql调试策略

  • 打印出实际的查询,并插入值。有时仅此一项就可以使问题变得明显

  • 如果有,请将查询复制并粘贴到phpMyAdmin/mysql workbench中,看看它会给您带来什么错误消息。如果您无法访问其中任何一个,只需在php脚本中调用mysql_error(),看看它会给您带来什么错误


  • 作为一种通用的php/mysql调试策略

  • 打印出实际的查询,并插入值。有时仅此一项就可以使问题变得明显

  • 如果有,请将查询复制并粘贴到phpMyAdmin/mysql workbench中,看看它会给您带来什么错误消息。如果您无法访问其中任何一个,只需在php脚本中调用mysql_error(),看看它会给您带来什么错误


  • 尝试使用
    或die($sql.-'.mysql_error());
    查看它对处理的看法。

    尝试使用
    或die($sql.-'.mysql_error());
    查看它对处理的看法。

    这有点困难,因为您没有提供确切的错误消息

    但是,可能是您使用了列名称'require',这是MySQL中的保留关键字。关键字'date'也是保留的,但由于它的广泛使用,因此是允许的

    尝试更改表和查询中的列名“require”

    在这里查看更多信息


    如果不是这样,请提供完整的错误消息。

    这有点困难,因为您没有提供准确的错误消息

    但是,可能是您使用了列名称'require',这是MySQL中的保留关键字。关键字'date'也是保留的,但由于它的广泛使用,因此是允许的

    尝试更改表和查询中的列名“require”

    在这里查看更多信息



    如果不是这样,请提供完整的错误消息。

    键入“日期”之类的字段日期。

    键入“日期”之类的字段日期。

    谢谢,但正如我所说,我在发布之前都这样做了。但这两种方法都没有帮助解决问题!=/在这种情况下,为什么不发布打印的内容,而不是让人们猜测呢?我在标题中发布了错误…?T汉克斯,但我在发帖之前做了这两件事,正如我所说的。这两件事都没有帮助解决问题!=/在这种情况下,为什么不发布打印的内容,而不是让人们猜测呢?我在标题中发布了错误…?我已经这样做了。-我在问题中输入了错误,我发现没有语法问题,因此在这里发布了这个问题。请参阅Sam Dufel的帖子,wh在发布时,如果$\u SESSION['cb']['sector']='dave's something'实际上,如果你更新你的帖子也可以发布一个表结构转储,那么我会把它放在一个phpmyAdmin中查看。我已经这样做了。-我在问题中输入了错误,我找不到语法问题,因此在这里发布这个问题。请参阅Sam Dufel的帖子,你发布的内容可以输出任何类型如果$\u SESSION['cb']['sector']='dave's something或other'事实上如果你可以发布一个表结构的转储,如果你更新你的帖子,那么我会把它放在一个phpmyAdmin中查看。这是一个问题。它说“检查sql版本的手册…语法错误接近require,boilerMake,等等”我在问题的任何地方都看不到…require是一个保留关键字,重命名你的表列,你就没事了。它说“检查sql版本的手册…require附近的语法错误,boilerMake,等等”我在问题的任何地方都看不到…require是一个保留关键字,重命名表列,您就没事了谢谢!错误是我使用了保留关键字,现在已修复;o)谢谢!错误是我使用了一个保留关键字,现在已经修复了;o)