如何在sql查询中使用php数组?[duplicate]

jtoj6r0c  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(129)

此问题在此处已有答案

PHP - Using PDO with IN clause array(9个答案)
2天前关闭。
我尝试在sql查询中使用数组。
有人能帮我吗?

$categories = [256, 249, 681, 682, 683, 684];

$sql = "SELECT * FROM `database`.`category` WHERE `id_category` = (:categories);";    
$request= $database->prepare($sql);    
$request->bindValue(':categories', $categories, PDO::PARAM_INT);    
$request->execute();    
$result = $request->fetchAll(PDO::FETCH_ASSOC);

从我的数组返回的值是1,我如何在我的SQL请求中分解我的数组?谢谢大家。

djmepvbi

djmepvbi1#

我将使用IN关键字,它接受一个逗号分隔的列表。

SELECT * FROM `database`.`category` WHERE `id_category` IN (?,?,?,?,?,?);

您可以直接将值传递给execute(),而不是将每个值绑定到变量。

$categories = [256, 249, 681, 682, 683, 684];
$catQuery = implode(',', array_map(fn($x) => '?', $categories));

$sql = "SELECT * FROM `database`.`category` WHERE `id_category` IN ($catQuery);";
$request= $database->prepare($sql);
$request->execute($categories);
$result = $request->fetchAll(PDO::FETCH_ASSOC);

相关问题