自动完成 return '0 个结果'

autocomplete return '0 results'

最近开始编码,第一次尝试使用准备好的语句,但它返回“0 个结果”,我找不到错误。

自动完成在没有准备好的语句的情况下工作,但不知道我现在哪里出错了。

<?php
$dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName= "vlucht";

$mysqli = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

mysqli_set_charset($mysqli, 'utf8');

$id = $_GET['q'];
$disc = "%" . strtolower($id) . "%";
$sql = "SELECT DISTINCT postgemeente FROM overzicht WHERE LOWER (postgemeente) LIKE ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $disc);
$stmt->execute();

$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo $row["postgemeente"]. "\n";
    }
} else {
    echo "0 results";
}

$mysqli->close();
?>

如果你正在使用 prepare->bind->execute ..... 你需要删除这一行

$result = $mysqli->query($sql);

查看评论

<?php
// help with debugging
ini_set('display_errors', 1); 
ini_set('log_errors',1); 
error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);


$dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName= "vlucht";

$mysqli = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

mysqli_set_charset($mysqli, 'utf8');

$id = $_GET['q'];
$disc = "%" . strtolower($id) . "%";
$sql = "SELECT DISTINCT postgemeente FROM overzicht WHERE LOWER (postgemeente) LIKE ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $disc);
$stmt->execute();

// remove you are doing it differently now
//$result = $mysqli->query($sql);

// add to get a result object from a statement object
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo $row["postgemeente"]. "\n";
    }
} else {
    echo "0 results";
}

$mysqli->close();
?>