我无法弄清楚这是怎么回事。我曾经写过完全相同的东西,并让它发挥作用。
$check = mysql_query("SELECT encrypt FROM database WHERE word='$word'") or die(mysql_error());
返回的错误是:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'database WHERE word ='asdaasdasdd''附近使用正确的语法
答案 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)
加密是一个功能所以,即使它不会导致问题,我也会避免将它用作列名。