【问题标题】:Error in SQL Syntax while trying to convert database尝试转换数据库时 SQL 语法错误
【发布时间】:2017-04-23 17:19:55
【问题描述】:

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

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

【问题讨论】:

标签: php mysql


【解决方案1】:

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

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

这显然是无效的 SQL 语法。

您要么需要在 implode 中删除 '(尽管如果 $ilch_to_phpbb 为空,这将导致 SQL 错误,因为 NOT IN () 是无效的 SQL),或者在查询中在其周围添加 '

AND user_id NOT IN ('".implode("','", $ilch_to_phpbb)."')

【讨论】:

  • WHERE user_active = 1 AND user_id NOT IN ('".implode("','", $ilch_to_phpbb)."')" , $phpbb_con) 原因:163 - 1054 中的 Fehler:“where 子句”中的未知列“user_active”查询战:SELECT * FROM phpbb_users WHERE user_active = 1 AND user_id NOT IN ('')跨度>
  • 这是一个不同的问题。这意味着您的“phpbb_users”表中没有“user_active”列。
  • 谢谢。现在问题解决了。最后一个错误是由 phpbb3 引起的。没有列 User_active。现在有 User_Type。 0 表示活跃,1 表示不活跃 2 表示忽略,3 表示创始人。
猜你喜欢
  • 1970-01-01
  • 2012-03-01
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 2021-07-01
相关资源
最近更新 更多