检查mysql表中是否存在数组值

时间:2016-11-17 12:31:21

标签: php mysql arrays

我需要检查包含超过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";
}

除了上述之外还有其他有效的方法吗?

1 个答案:

答案 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
?>

在你的循环中,你将在最后一次迭代中获得“,”这将破坏你的查询。