如何在PHP中编写包含LIKE的SQL查询?

官方的

我想进行以结尾的查询LIKE value%,但是由于某种原因,它有一个错误。

$_GET['letter'] 包含我要在查询中使用的起始字母。

例如,如果它是'a',我的查询将是...WHERE name LIKE 'a%'

我的代码:

$sql = sprintf("SELECT id, name, username, email FROM users WHERE name LIKE '" . ($_GET['letter']) . "%'");

我得到的错误是: PHP Warning: sprintf(): Too few arguments

然后,当然: PHP Warning: mysqli::query(): Empty query

提前致谢。

凯文

甚至不要考虑走这条路。可以将预准备的语句与PDO或mysqli一起使用。

if(isset($_GET['letter']) && strlen($_GET['letter']) > 0) {
    $letter = $_GET['letter'] . '%';
    $sql = "SELECT id, name, username, email FROM users WHERE name LIKE ?";
    $query = $con->prepare($sql);
    $query->bind_param('s', $letter);
    $query->execute();

    $query->bind_result($id, $name, $username, $email);
    while($query->fetch()) {
        echo $id . '<br/>';
        // and others
    }

    // alternate version with mysqlnd installed
    // $results = $query->get_result();
    // while($row = $results->fetch_assoc()) {
    //  echo $row['id'];
    // }
} else {
    echo 'please provide for search value';
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章