我的查询中出现mysql语法错误。几个小时都找不到问题。我在哪里弄错了?
mysql_query("SELECT * FROM uyeler where basresvar='evet' AND
cinsiyet='".$gender."' AND kesfetgoster='evet' AND id NOT IN (".$hepsi.")
ORDER BY FIELD (kesfetbegendikleri, '".$be."') > 0, ulke = '".$ulke."', id
DESC limit 10")
错误
您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以便在#199; 199)ORDER BY FIELD(kesfetbegendikleri,',202,')>附近使用正确的语法。 0,ulke ='土耳其',id DESC'在第1行
答案 0 :(得分:0)
正如评论中所讨论的,$hepsi
的值(198,201,199)中的逗号是问题所在。因此,如果您使用现有数组中的implode
创建该字符串,则可以使用array_filter
删除空数组元素,如下所示:
$hepsi = implode(',' array_filter($your_array));
如果$ hepsi已经是现有字符串,那么只需explode
,再次应用array_filter
和implode
。像这样:
$hepsi = implode(',', array_filter(explode(',', $hepsi)));