我需要检查包含超过400个值的数组值,这些值存在于MySQL表中,即使列中不存在,我也应该得到我传递的所有值的结果。
例如:
cont table
----------
Column1
---------
9xxxxxxxxx
91xxxxxxxx
92xxxxxxxx
我的数组包含9xxxxxxxxx
& 91xxxxxxxx
。我如何迭代以使列存在或不存在。
我尝试使用foreach
并构建查询
$sql = 'SELECT cont WHERE num IN(';
foreach($jsonString as $val){
$sql = $sql . "'$val', ";
echo $val;
}
if(mysqli_query($con,$sql)){
echo "exist";
}else {
echo "error";
}
除了上述之外还有其他有效的方法吗?
答案 0 :(得分:3)
首先,cont
是您的表名,而不是FROM
关键字的位置。
如果cont
是列名而不是TABLE
名称?
根据您的问题,您有400多个ID,而不是为什么在这里使用循环?您可以简单地使用逗号分隔值implode()
,例如
<?php
$ids = implode(",",$jsonString);
$sql = "SELECT * FROM cont WHERE num IN ($ids)"; // assuming cont is table name
?>
在你的循环中,你将在最后一次迭代中获得“,”这将破坏你的查询。