在 PDO SQL 查询中重用绑定参数:有效策略
构建具有搜索功能的 SQL 查询通常需要重复使用相同的搜索词。 但是,PDO 文档明确指出不允许在准备好的语句中多次使用相同的命名参数。 让我们探索有效的解决方法。
实用的替代方案
不要使用多个参数名称(例如:term1、:term2),请考虑以下方法:
<code class="language-sql">SET @term = :term; SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term;</code>
<code class="language-php">$query = "SELECT ... FROM table WHERE name LIKE :term OR number LIKE :term"; $term = "hello world"; $termX = 0; $query = preg_replace_callback("/\:term/", function ($matches) use (&$termX) { $termX++; return $matches[0] . ($termX - 1); }, $query); $stmt = $pdo->prepare($query); for ($i = 0; $i < 2; $i++) { $stmt->bindValue(":term$i", "%$term%", PDO::PARAM_STR); } $stmt->execute();</code>
PDOStatement::execute()
.最优解决方案选择
处理重复绑定参数的最佳方法取决于您的具体需求和查询复杂性。 MySQL 用户定义的变量提供了简单性和可读性,而参数替换为更复杂的查询提供了更大的灵活性。
以上是如何使用 PDO 重用 SQL 查询中的绑定参数?的详细内容。更多信息请关注PHP中文网其他相关文章!