绑定参数的多种使用
在创建基本的数据库搜索引擎时,开发者可能会遇到需要包含不同类型的信息并检索的情况来自多个表的数据。当使用带有绑定参数的预准备语句进行模式匹配时,PDO 文档警告不要多次使用相同的命名参数标记。
要绕过此限制,一种可能的解决方案是将每个 :term 参数替换为 :termX (其中 X 代表 term = n )。然而,这可能会变得麻烦且容易出错。
另一种方法是利用 MySQL 用户定义变量。通过将参数存储在这些变量中,代码变得更具可读性,并且不需要额外的 PHP 函数。其工作原理如下:
示例:
$sql = "SET @term = :term"; try { $stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute(); } catch (PDOException $e) { // error handling } $sql = "SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term"; try { $stmt = $dbh->prepare($sql); $stmt->execute(); $stmt->fetchAll(); } catch (PDOException $e) { // error handling }
用户定义变量的优点:
考虑因素:
需要额外的 MySQL 查询,这可能需要考虑性能担忧。
以上是如何高效地使用 MySQL 准备语句中的多个绑定参数进行模式匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!