首页 >后端开发 >php教程 >如何正确使用 PDO 准备语句进行 MySQL LIKE 查询?

如何正确使用 PDO 准备语句进行 MySQL LIKE 查询?

Susan Sarandon
Susan Sarandon原创
2024-10-31 02:05:29399浏览

How to Correctly Use PDO Prepared Statements for MySQL LIKE Queries?

PHP PDO 准备语句:MySQL LIKE 查询

使用 PHP 的 PDO 类执行 LIKE 查询时,正确处理 LIKE 运算符至关重要并正确准备语句。

问题:在提供的代码中,原始查询使用 MySQL 客户端工作,但在迁移到 PHP 时遇到问题。

解决方案: 错误出在prepare方法中的WHERE子句中。以下行是不正确的:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '"%' . $searchTerm . '"%'));
$ret = $prep->execute(array(':searchTerm' => "%:searchTerm%"));
$ret = $prep->execute(array(':searchTerm' => ':' . $searchTerm . '%'));</code>

解释:

  • 准备好的语句:它们与查询分开传输数据,使得嵌入值时不需要引号。
  • LIKE 运算符: 需要通配符,例如 % 或 _,来表示任意字符序列。
  • 正确查询: 正确的 WHERE 子句应该是:
<code class="php">WHERE hs.hs_text LIKE :searchTerm</code>

准备好的语句应该执行如下:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '%' . $searchTerm . '%'));</code>

现在,查询应该返回所需的结果.

以上是如何正确使用 PDO 准备语句进行 MySQL LIKE 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn