PHP MySQLi 的动态绑定
动态参数绑定
在 PHP MySQLi 中,bind_param () 方法允许将参数绑定到准备好的语句。但是,对于动态绑定,参数的数量和类型可能会有所不同,默认方法就不够了。
解决方案
要克服此限制,可以使用以下解决方案使用:
使用拆包操作符和get_result()
在 PHP 5.6 及更高版本中,解包运算符 (...) 和 get_result() 可用于简化动态绑定:
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(); }
示例
这个例子说明了如何动态绑定参数并检索结果:
$mysqli = new database(DB_HOST, DB_USER, DB_PASS, DB_NAME); $output = new search($mysqli); $sql = "SELECT * FROM root_contacts_cfm WHERE root_contacts_cfm.cnt_id = ? AND root_contacts_cfm.cnt_firstname = ? ORDER BY cnt_id DESC"; $res = $output->get_custom_result($sql, 'ss', array('1', 'Tk')); while ($row = $res->fetch_assoc()) { echo $row['fieldName'] . '<br>'; }
此方法提供了一种基于传递给函数调用的参数来绑定参数的动态方法。
以上是如何在PHP MySQLi中实现动态参数绑定?的详细内容。更多信息请关注PHP中文网其他相关文章!