首页 >后端开发 >php教程 >如何在 PHP 中动态绑定参数到 MySQL 查询?

如何在 PHP 中动态绑定参数到 MySQL 查询?

Linda Hamilton
Linda Hamilton原创
2024-12-03 01:00:14938浏览

How Can I Dynamically Bind Parameters to MySQL Queries in PHP?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn