Es gibt keinen Grund, num_rows
zu verwenden , was nicht nur verwirrend und leicht zu missbrauchen ist, sondern bei Missbrauch auch zu Leistungsproblemen führen kann.
Rufen Sie einfach COUNT(1)
ab und rufen Sie dann eine einzelne Spalte aus der ersten Zeile in Ihrem SQL-Ergebnis ab.
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli($host, $username, $password, $database);
$conn->set_charset('utf8mb4');
$stmt = $conn->prepare("SELECT COUNT(1) FROM users WHERE username = ?");
$stmt->bind_param("s", $_POST['username']);
$stmt->execute();
$exists = $stmt->get_result()->fetch_row()[0];
if($exists) {
echo "valid";
} else {
echo "invalid";
}
Wenn Sie aus irgendeinem seltsamen Grund bei num_rows
bleiben wollten Sie müssten entweder store_result()
aufrufen auf der Anweisung und erhalten Sie dann die num_rows
aus der Anweisung oder rufen Sie get_result()
auf und lesen Sie den Wert von num_rows
auf der zurückgegebenen Ergebnismenge.