Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组mysql查询_Php_Mysql_Arrays - Fatal编程技术网

php数组mysql查询

php数组mysql查询,php,mysql,arrays,Php,Mysql,Arrays,我有一个类似这样的带有IN子句的查询 sql=” 一些疑问 在() “ 我必须执行for循环才能将php数组的所有项放入IN子句中,还是有一个函数或方法可以这样做? 下面是一个简单的例子: $array=array('lastname','email','phone') $comma_separated=内爆(“,”,$array) 您可以使用,例如: 对于数组中的数值: sprintf("... WHERE some_item IN (%s) ...",implode(",",$numeric

我有一个类似这样的带有IN子句的查询

sql=”

一些疑问 在()

我必须执行for循环才能将php数组的所有项放入IN子句中,还是有一个函数或方法可以这样做?

下面是一个简单的例子:
$array=array('lastname','email','phone')
$comma_separated=内爆(“,”,$array)

您可以使用,例如:


对于数组中的数值:

sprintf("... WHERE some_item IN (%s) ...",implode(",",$numeric_array));
对于字符串值:

sprintf("... WHERE some_item IN ('%s') ...",implode("','",$escaped_string_array));
在构建数组时,请小心转义这些值


希望这有帮助

如果数组中有事物列表,可以使用JOIN为您构建它。这对于数值来说是最简单的,因为你不必在事物周围加引号。大概是这样的:

$sql = 'SOME QUERY WHERE some_item IN (' . join(',', $a_myData) . ')';
如果数组包含字符串,则应在将数据放入数组时转义该数据。但一旦你做到了这一点,你可以做类似上面的事情,添加引号

$sql = 'SOME QUERY WHERE some_item IN ("' . join('","', $a_myData) . '")';
一个潜在的问题是空数组,因为上面的示例将在(“”中为您提供
,这可能与您不想要的内容相匹配

上面的示例也不考虑空值。解决这个问题的一种方法是用已经在数组周围加了引号的字符串填充数组(这样您就可以将
NULL
作为它自己的值)。

您可以尝试内爆

$item_ids = array( 1, 2, 3, 4, 5); // somehow populate this array
$item_list = implode(',', $item_ids);

$sql = "SOME QUERY WHERE some_item IN ({$item_list})";
您可以在调用转义方法等之前执行数组_filter()。注意,您可以将它们缩进四个空格。编辑器工具栏中的“{}”按钮可以为您执行此操作。编辑您的问题并进行尝试。单击编辑器工具栏中的橙色问号,了解有关格式设置的详细信息和提示。
$item_ids = array( 1, 2, 3, 4, 5); // somehow populate this array
$item_list = implode(',', $item_ids);

$sql = "SOME QUERY WHERE some_item IN ({$item_list})";