【问题标题】:PDO like Query is Case Sensitive类似查询的 PDO 区分大小写
【发布时间】:2014-11-03 10:05:19
【问题描述】:

我没有从使用 PDO 的 LIKE 搜索中得到适当的结果,因为 PDO 搜索区分大小写,我希望不区分大小写。

我有这个查询,但如果数据库中有小字母 a,它只返回完全匹配的数据,如果我用大写字母 A 搜索,我不会得到结果。

$stmt = $conn->prepare("SELECT ROOM, GUEST_NAME, GUEST_FIRST_NAME, CONFIRMATION_NO, DEPARTURE, PWD FROM RESERVATION_GENERAL_2 WHERE GUEST_FIRST_NAME LIKE ? OR GUEST_NAME LIKE ?");
$stmt->execute(array('%'.$searchFilter.'%','%'.$searchFilter.'%' ));

是否有办法修复此查询以使其不区分大小写?

我正在使用 oracle 11g Xpress Edition 数据库。

【问题讨论】:

  • @Mr.Smith PDO 不是 DBMS。 PDO 是一个抽象层,位于 PHP 和数据库之间,使用各种 DBMS 的众多驱动程序之一,例如 MySQL、MSSQL 和 Oracle 等等。

标签: php sql oracle pdo


【解决方案1】:

通常类似以下的作品

…WHERE LOWER(GUEST_FIRST_NAME) LIKE ? OR LOWER(GUEST_NAME LIKE) ?
$stmt->execute(array('%'.strtolower($searchFilter).'%','%'.strtolower($searchFilter).'%' ));

【讨论】:

  • 代码第 1 行的最后一个括号被替换 :)
猜你喜欢
  • 2013-04-25
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多