Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 使用IN运算符将动态数组加载到SQL查询中_Php_Mysql_Arrays - Fatal编程技术网

Php 使用IN运算符将动态数组加载到SQL查询中

Php 使用IN运算符将动态数组加载到SQL查询中,php,mysql,arrays,Php,Mysql,Arrays,我有一个数组$f_数组,其值由while循环和SQL查询加载 $sql="SELECT * FROM comment WHERE uname IN ($f_array) ORDER BY ID DESC"; 我想在SQL查询中使用此数组名称 $sql="SELECT * FROM comment WHERE uname IN ($f_array) ORDER BY ID DESC"; 这就是我的数组在加载数据后的样子 array(4) { [0]=> string(8) "w

我有一个数组$f_数组,其值由while循环和SQL查询加载

$sql="SELECT * FROM comment WHERE uname IN ($f_array) ORDER BY ID DESC";
我想在SQL查询中使用此数组名称

$sql="SELECT * FROM comment WHERE uname IN ($f_array) ORDER BY ID DESC";
这就是我的数组在加载数据后的样子

array(4) { 
    [0]=> string(8) "wisahmed" 
    [1]=> string(10) "test_user1" 
    [2]=> string(10) "test_user2" 
    [3]=> string(10) "test_user3" 
}
有人能告诉我如何将这个数组加载到上面的MySQL查询中。

首先将数组转换为字符串
$sql="SELECT * FROM comment WHERE uname IN ($f_array) ORDER BY ID DESC";
更新您的查询

首先将数组转换为字符串 更新您的查询


您需要构建一个带引号、逗号分隔的列表。这可以通过具有内爆的阵列源轻松实现:

$imploded = implode("','", $f_array)
这将导致:

wisahmed','test_user1','test_user2','test_user3
因此,将其用单引号括起来,并将其放入现有的查询中,结果将以正确的格式显示:

$sql="SELECT * FROM comment WHERE uname IN ('{$imploded}') ORDER BY ID DESC";
成为:

SELECT * FROM comment WHERE uname IN ('wisahmed','test_user1','test_user2','test_user3') ORDER BY ID DESC

您需要构建一个带引号、逗号分隔的列表。这可以通过具有内爆的阵列源轻松实现:

$imploded = implode("','", $f_array)
这将导致:

wisahmed','test_user1','test_user2','test_user3
因此,将其用单引号括起来,并将其放入现有的查询中,结果将以正确的格式显示:

$sql="SELECT * FROM comment WHERE uname IN ('{$imploded}') ORDER BY ID DESC";
成为:

SELECT * FROM comment WHERE uname IN ('wisahmed','test_user1','test_user2','test_user3') ORDER BY ID DESC

不能直接使用数组,必须先将其转换为字符串,因此请尝试以下操作:

$users = "'".implode("','",$f_array)."'";
然后查询应该是

$sql="SELECT * FROM comment WHERE uname IN ($users) ORDER BY ID DESC";

不能直接使用数组,必须先将其转换为字符串,因此请尝试以下操作:

$users = "'".implode("','",$f_array)."'";
然后查询应该是

$sql="SELECT * FROM comment WHERE uname IN ($users) ORDER BY ID DESC";

我只是个初学者。我不确定要搜索什么。是否显示第二个SQL查询以便$f_数组的源本身就是一个查询?如果是这样的话,你最好使用join.PS:我只是个初学者。我不确定要搜索什么。是否显示第二个SQL查询以便$f_数组的源本身就是一个查询?如果是这样的话,使用联接可能会更好。