簡體   English   中英

如何在PHP中編寫包含LIKE的SQL查詢?

[英]How should I write SQL query that contains LIKE in PHP?

我想查詢以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';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM