这是我的代码:
$param2 = $val2 = "";
if ($myCondition){
$parm2 = ", param2 = ?";
$val2 = "something";
}
$stmt = $dbh_conn->prepare("UPDATE myTable SET param1 = ? $param2 WHERE param3 = ?");
$stmt->execute([$val1, $val2, $val3]);
我的代码在这种情况下工作。如果是
true
,我该怎么处理? 最佳答案
下面是一个代码:
$params = ['param1 = ?'];
$values = [$param1];
if ($myCondition){
$params[] = 'param2 = ?'
$values = [$param2];
}
$values[] = $param3;
$stmt = $dbh_conn->prepare("UPDATE myTable SET " . implode(', ', $params) . " WHERE param3 = ?");
$stmt->execute($values);
您可以根据需要修改它,但主要思想是收集将在数组中更新的所有值,然后将该数组内爆为字符串。
关于php - 如何将动态参数传递给查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49155922/