PHP MySQL语法错误,在Sequel Pro中工作正常


PHP MySQL syntax error, works ok in Sequel Pro

我有这段PHP代码:

echo $sql;
echo "<P>";
$result = $conn->query($sql);
if (!$result) {
  echo $conn->error;

结果如下:

select reknro, nimi, sukup, synt, isa, ema, kuvus, kennelnimi fromSkl_koirat k, skl_varit v where k.v varikoodi = v.d and k.k reknro inselect distinct reknro from ttk_koira_sairaus where kysymys_id = 15或者kysymys_id = 16)

你的SQL语法有错误;查看手册对应于MySQL服务器版本,以便使用正确的语法

在第1行附近'or kysymys_id = 16 '

当我复制粘贴sql命令到Sequel Pro并在那里执行它时,它产生一个输出而不是一个错误。为什么PHP认为有错误?

(一些背景信息:inner select中的'where'子句是在用户选择表单中的复选框之后以编程方式创建的:如果只有一个复选框被选中,那么'where'子句中没有'或',它就会工作。)如果用户选择了更多的复选框,每个复选框都会被添加到带有"或"的where子句中,只要出现一个"或",就会出现语法错误。如果条件与'and'组合在一起

尝试kysymys_id IN (15, 16)