【问题标题】:php search accepting incomplete entered input [duplicate]php搜索接受不完整的输入输入[重复]
【发布时间】:2017-03-13 04:34:15
【问题描述】:

我创建了一个非常基本且简单的搜索程序,它在获取的行中显示输入的用户名的名字和姓氏。它是成功的,但前提是输入的用户名与数据库中用户名的确切字符和长度匹配。我希望我的代码即使不完整也能阅读;例如,数据库中的用户名是“baymax16”,输入的用户名是“max16”,我希望它返回true,因为某些字符匹配。我用了preg_match(),但是有一个错误。我应该使用preg_match() 吗?如果是,我应该如何正确使用它?如果没有,我应该使用什么?

<?php
$db = new PDO('mysql:host=127.0.0.1;dbname=sample;charset=utf8', 'root', '');

if(isset($_POST['search'])) {
    $search = $_POST['search'];

    $query = $db->prepare("SELECT * FROM search WHERE username=:username");
    $query->execute(['username' => $search]);

    $row = $query->fetch(PDO::FETCH_OBJ);

    if(count($row)) {
        if(preg_match($search, $row)) {
            echo $row->firstname . ' ' . $row->lastname;
        }
    }
}

【问题讨论】:

    标签: php mysql regex pdo preg-match


    【解决方案1】:

    您的查询: SELECT * FROM search WHERE username=:username 告诉数据库提取数据 IFF 提供的字符串等于数据库中存在的字符串。

    为什么不在查询中使用LIKE 运算符?

    SELECT * FROM search WHERE username LIKE CONCAT('%', :username,'%');

    【讨论】:

    • 非常感谢,伙计
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多