PHP PDO 准备语句与 MySQL LIKE 查询
本文解决了使用 PHP 的 PDO 类(MySQL 驱动程序)执行 LIKE 的问题使用 MySQL 数据库进行查询。
尝试对预准备语句使用 LIKE 时会出现问题,因为 PDOexecute() 方法中使用的语法与 MySQL 客户端不同。
错误的语法:
<code class="php">$ret = $prep->execute(array(':searchTerm' => '"%'.$searchTerm.'%"'));</code>
添加了不必要的双引号,导致不正确的结果。
同样,此语法也是不正确的:
<code class="php">$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));</code>
,因为它缺少所需的附加语法准备好的语句。
使用 PDO 准备好的语句执行 LIKE 查询的正确语法是:
<code class="php">$prep = $dbh->prepare($sql); $ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));</code>
准备好的语句比字符串连接具有优势,因为它们可以防止 SQL 注入。它们将值视为与查询分开的实体,从而消除了繁琐的串联的需要。
以上是如何在 PHP 中使用 PDO 准备语句执行 LIKE 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!