在SELECT WHERE中将str_replace更改为preg_replace

时间:2017-10-10 07:18:12

标签: php mysql

我想为我博客上的所有帖子创建一个搜索引擎。 最初,我的代码是:

<?php
    $search = mysqli_real_escape_string($connection, $_POST['search']);
    $search = str_replace('\'', '', $search);
    $search = str_replace('-', '', $search);
    $search = str_replace('.', '', $search);

    $sqlsearch = $connection->query("SELECT * FROM table
    WHERE replace(replace(replace(title, '\'', ''), '-', ' '), '.', '') LIKE '%{$search}%' GROUP BY title");
?>

上述脚本将收集已过滤的标题中的数据。列首先使用&str;替换&#39;并正常工作。但我需要创建更多列表来过滤更多查询。

所以我想,也许它可以替换为&#39; preg_replace&#39;,但还不确定是否适用于我的博客。

上述脚本是否可以替换为此代码:

<?php
    $search = mysqli_real_escape_string($connection, $_POST['search']);
    $search = preg_replace('/[^\p{L}\p{N}]/u', '', $search);

    $sqlsearch = $connection->query("SELECT * FROM table
    WHERE preg_replace('/[^\p{L}\p{N}]/u', '', title) LIKE '%{$search}%' GROUP BY title");
?>

请给我最大的输入。谢谢..

0 个答案:

没有答案