首页 > 解决方案 > 使用 Microsoft Access 数据库的 PHP PDO 的 REPLACE 版本

问题描述

我需要使用 PDO 和 PHP 在 MDB ACCESS 数据库中搜索一个单词。

问题是在数据库中我可以有一个名为 CODE_NUMBER 的字段,它可以包含点或逗号,例如:

12.11.34

用户在使用自定义表单搜索数据库中的文章时,可能不使用点或其他特殊字符进行搜索......所以在上面的示例中,它可以在输入框中写下这样的内容:

1211

然后按回车。

在这种情况下,我想得到12.11.34一个有效的结果,忽略对点的搜索。

问题是 MDB ACCESS 的 PDO 不支持 REPLACE 命令:

这个版本的 mysql 正在工作:

    $code = "1211";

    $rs = $db->prepare('SELECT Products.* FROM Products WHERE REPLACE(Products.CODE_NUMBER, ".", "") LIKE ?');
    $rs->execute(array("%" . $code . "%"));
    $ris = $rs->fetchAll(PDO::FETCH_ASSOC);

但是使用MDB访问的同一个不起作用!

所以我从这里尝试了这种方式:在带有 PDO 和 .MDB ACCESS 的 SELECT 中使用 REPLACE 进行搜索,使用 PHP

 $code = "1211";

 $code = implode("[.]", str_split($code )) . "[.]";

 $rs = $db->prepare('SELECT Products.* FROM Products WHERE Products.CODE_NUMBER LIKE ?');
 $rs->execute(array("%" . $code . "%"));
 $ris = $rs->fetchAll(PDO::FETCH_ASSOC);

但它不起作用。

有什么建议吗?

标签: phpms-accesspdo

解决方案


推荐阅读