在 PHP 中动态绑定 MySQL 参数
在您的应用程序中,您会遇到需要将参数动态绑定到准备好的 SQL 查询的场景。虽然您当前的方法有效,但它缺乏多功能性,特别是在处理不同数量的参数时。
为了实现所需的灵活性,您可以使用 call_user_func_array() 和解包运算符 (...$ var):
public function get_custom_result($sql, $types = null, $params = null) { $stmt = $this->mysqli->prepare($sql); $stmt->bind_param($types, ...$params); if (!$stmt->execute()) return false; return $stmt->get_result(); }
这个更新的 get_custom_result() 方法允许您通过 $types 和 $params 动态指定参数类型和值分别为参数。 ...$params 语法解压数组,将每个值单独传递给 bind_param() 方法。
例如,考虑以下查询和参数值:
$sql = " SELECT * FROM root_contacts_cfm WHERE root_contacts_cfm.cnt_id = ? AND root_contacts_cfm.cnt_firstname = ? ORDER BY cnt_id DESC"; $params = ['1', 'Tk'];
您可以现在使用动态参数绑定执行查询:
$res = $output->get_custom_result($sql, 'ss', $params); while ($row = $res->fetch_assoc()) { echo $row['fieldName'] .'<br>'; }
以上是如何在 PHP 中动态绑定参数到 MySQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!