如何动态使用mysqli bind_param

时间:2016-04-06 16:59:59

标签: php mysqli

我有一个mysqli查询,其where子句是在for循环中生成的。因此,在运行时之前不知道参数。

在这种情况下如何使用mysqli bind_param方法?

我可以在for循环中使用它来逐个绑定参数吗?

1 个答案:

答案 0 :(得分:4)

是的,使用php5.6可能非常简单,首先你需要知道有多少个参数str_repeat()count()可以帮助你和解包操作符(...)所以这种方式也可以使dynimic结合。

$params = [10, 50, 51, 99];
$types = str_repeat('i',count($params));

$stmt = $mysqli->prepare("SELECT * FROM t WHERE id IN (?,?,?,?)");
$stmt->bind_param($types, ...$params);
if(!$stmt->excute()){
    echo mysqli_error($con);
}