php - 尝试使用 PDO 在 PHP 中搜索 MySQL 数据库

标签 php mysql search pdo

我试图在搜索中找到类似于查询的结果,例如,当有人搜索“tes”时,我希望出现“Test McTestFace”。

我尝试同时使用 LIKE 和 MATCH AGAINST 方法,但似乎都不起作用。使用 MATCH AGAINST 时,什么也不会出现,而使用 LIKE 时,只会出现直接匹配。

我的 MATCH AGAINST 代码:

if (isset($_POST['submit']))
{
    $query = $db->prepare("SELECT * FROM accounts WHERE MATCH (name) AGAINST (:query)");
    $query->execute(array('query' => $_POST['query']));
    $result = $query->fetch();
}
print_r($result);

我的 LIKE 代码:

if (isset($_POST['submit']))
{
    $query = $db->prepare("SELECT * FROM accounts WHERE name LIKE :query");
    $query->execute(array('query' => $_POST['query']));
    $result = $query->fetch();
}
print_r($result);

抱歉,谢谢。

最佳答案

如果使用 LIKE,您需要使用通配符 % 包装查询以使其工作。

来自docs :

With LIKE you can use the following two wildcard characters in the pattern:

% matches any number of characters, even zero characters.

_ matches exactly one character.

$query->execute(array('query' => '%' . $_POST['query'] . '%'));

关于php - 尝试使用 PDO 在 PHP 中搜索 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40692614/

相关文章:

php - Flickr 提要问题。如何显示照片流中的所有图像

php - 在 PHP 中创建唯一用户指纹的方法

php - 优化MySQL搜索查询

php - php echo 中的背景图像 url

php - 删除按钮不删除其他表中的值

php - 如何在 codeigniter 中重定向到我指定的页面

PHP/MySQL 最后编辑脚本?

mysql - 在 MySQL 中截断慢查询日志

android - 通过从数据库填充的 ListView 进行搜索

search - eshell 搜索历史