我在php工作,这是我的数组
数组([0] =>夏普[1] =>新[2] =>压力[3] =>向前弯曲[4] =>头痛)
我想检索与标记列
中的数组值匹配的记录select *
from table_name
where tag In(Sharp, New,Stress,Bending forward,Headache);
但是上面的查询在php端给出了错误,就像
一样警告:mysql_fetch_array()要求参数1为资源,字符串在第14行的C:\ xampp \ htdocs \ Demo \ abc.php中给出
而mysql方面是
1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以便在第1行的“forward,Headache”LIMIT 0,25'附近使用正确的语法
提前谢谢
答案 0 :(得分:0)
您缺少字符串值的引号。
此:
SELECT * FROM table_name WHERE tag IN (Sharp,New,Stress,Bending forward,Headache)
应该是:
SELECT * FROM table_name WHERE tag IN ('Sharp','New', 'Stress','Bending forward','Headache')
如果你有一个阵列,你可以使用implode()
$string = implode('","',$yourArray);
$query = 'SELECT * FROM table_name WHERE tag IN ("'.$string.'")';
还有一点,根据您的代码错误,您使用的是mysql_*
扩展程序,该扩展程序在PHP 7中已弃用并已关闭。您可以使用mysqli_*
或PDO
。