利用用户定义的变量多次绑定参数
在实现数据库的搜索功能时,通常涉及使用准备好的语句和绑定搜索词参数。但是,MySQL 限制在单个准备好的语句中重复使用命名参数。
替代解决方案
而不是诉诸使用多个参数(例如,:term1, : term2),考虑利用 MySQL 的用户定义变量。这允许您将参数值存储在数据库本身内的临时变量中。
实现
要实现此:
SET @term = :term;
$stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute();
SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term;
优点
此方法有几个优点:
警告
唯一需要注意的是执行附加查询来设置用户定义变量的开销。然而,它的好处远远超过了这个小缺点。
以上是用户定义变量如何解决MySQL重复参数绑定限制?的详细内容。更多信息请关注PHP中文网其他相关文章!