mysql_query SELECT给我带来麻烦

时间:2012-03-26 06:09:39

标签: php mysql

我无法弄清楚这是怎么回事。我曾经写过完全相同的东西,并让它发挥作用。

$check = mysql_query("SELECT encrypt FROM database WHERE word='$word'") or die(mysql_error());

返回的错误是:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'database WHERE word ='asdaasdasdd''附近使用正确的语法

5 个答案:

答案 0 :(得分:9)

DATABASE是一个mysql reserved word,用反引号“

重复它
$check = mysql_query("SELECT encrypt FROM `database` WHERE word='$word'")
                     or die(mysql_error());

答案 1 :(得分:3)

尝试反击database。这可能是一个保留词。

答案 2 :(得分:2)

数据库或数据库是一个关键字。请参阅以下Reserve words

链接

答案 3 :(得分:1)

或者死()技巧是一个非常糟糕的选择,原因如下:

  • 向用户显示错误消息不是一种非常好的方法。

  • 使用例如mysql_error()调用它,就像许多人一样,暴露了永远不会在生产环境中输出的信息

  • 您无法以任何方式捕获错误。

  • 您无法记录错误。

  • 您无法控制是否应将其输出到屏幕。在开发环境中这样做是可以的,但肯定不是在生产环境中。

  • 它可以阻止您进行任何类型的清理。它只是突然结束了剧本。

一种简单的实施方式是:

$result = mysql_query('SELECT foo FROM bar', $db) or trigger_error('Query failed: ' . mysql_error($db), E_USER_ERROR);

答案 4 :(得分:-1)

加密是一个功能所以,即使它不会导致问题,我也会避免将它用作列名。