尝试转换数据库时SQL语法出错

时间:2017-04-23 17:19:55

标签: php mysql

尝试转换数据库时遇到错误。

  

Fehler in 163 - 1064:你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在附近使用')'在第2行   查询大战:SELECT * FROM phpbb_users WHERE user_active = 1 AND user_id NOT IN()

我的代码:

$e0 = query("SELECT * FROM ".$phpbb_prefix."_users
    WHERE user_active = 1 AND user_id NOT IN (".implode("','", $ilch_to_phpbb).")" , $phpbb_con)
    or die('Fehler in '. __LINE__ . ' - '.mysql_errno($phpbb_con) . ' : '. mysql_error($phpbb_con).'<br /> Query war : ' . $lastquery . '<hr />');

我无法识别错误。任何想法?

  • 数据库: MySQL(i)5.5.53-0 + deb7u1
  • PHP: 5

1 个答案:

答案 0 :(得分:0)

问题在于你的内爆。想象一下,如果$ilch_to_phpbb包含2个用户ID,则查询将为:

SELECT * FROM ".$phpbb_prefix."_users
WHERE user_active = 1 AND user_id NOT IN (2','3)

这显然是无效的SQL语法。

您需要删除内幕中的'(尽管如果$ilch_to_phpbb为空,这会导致SQL错误,因为NOT IN ()是无效的SQL),或者添加{{1在查询中围绕它:

'