我有以下几点:

<?php

    $array = join(',', $ids); // this prints 3,4,6,7,8

    $stmt = $cxn->prepare('SELECT * FROM comments WHERE id IN (?)');
    $stmt->bind_param('i', $array);
    $stmt->execute();

?>


但是,当我打印结果时,它仅显示第一个id(3)的注释,而不显示其他注释。怎么了?

最佳答案

我相信要使此功能按预期工作,您必须将值直接替换为字符串:

$idString = '';
foreach($ids as $id) {
 $idString .= $id . ',';
}
$idString = substr($idString, 0, -1);
$stmt = $cxn->prepare("SELECT * FROM comments WHERE id IN (".$idstring.")");
$stmt->execute();


不幸的是,这可能会给您带来SQL注入攻击的机会。

07-28 02:48