【发布时间】:2017-07-27 16:17:05
【问题描述】:
我试图在 mysql where in 子句中使用数组
$result= $myDB->query("SELECT sum(total) as total FROM ".$myDB->prefix("mydata")." WHERE categoryname IN ('".$categoryname."') AND year='$year' AND stat_id='$stat_id'");
类别名称的当前输出是
('Cat1,Cat2,Cat3')
想要的输出
('Cat1','Cat2','Cat3')
到目前为止我试过了,但它不起作用
$categoryname_new = implode(',',$categoryname);
$result= $myDB->query("SELECT sum(total) as total FROM ".$myDB->prefix("mydata")." WHERE categoryname IN ('".$categoryname_new."') AND year='$year' AND stat_id='$stat_id'");
【问题讨论】:
-
也许
$categoryname_new = "'" . implode("','",$categoryname) . "'";占位符会更简单、更安全。 -
内爆函数返回一个字符串,为了在这个字符串中的每个单词周围加上引号,你需要在内爆之前操作你的数组,或者对生成的字符串应用一些正则表达式。