PHP / PDO搜索模式匹配

时间:2014-04-08 18:02:12

标签: php search pdo match

当我在数据库中搜索用户时,我会这样做:

$result = $dbh->query("SELECT user FROM table_user WHERE user = '".$user."' ");
    $result->execute();
    while ($user = $result->fetch(PDO::FETCH_ASSOC)) {
        $array[] = $user['user'];
    }

但我首先得到一个结果,

user

$user

完全相同。

但是我已经需要一个结果,当“$ user”是“user”的一部分时,有谁知道如何进行这样的模式匹配?

问候!!

1 个答案:

答案 0 :(得分:1)

您正在搜索LIKE声明。进一步请注意,当您以这种方式插入$ user时,您很容易受到SQL注入攻击。你应该使用准备好的声明 -

使用此:

$stmt = $dbh->prepare("SELECT user FROM table_user WHERE user LIKE :search");
$stmt->execute(array('user' => "%$user%"));

while($user = $stmt->fetch()) {
    var_dump($user);
}