Er is geen reden om num_rows
te gebruiken , wat niet alleen verwarrend en gemakkelijk te misbruiken is, maar ook prestatieproblemen kan veroorzaken bij misbruik.
Haal gewoon COUNT(1)
en haal vervolgens een enkele kolom uit de eerste rij in uw SQL-resultaat.
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";
}
Als je om de een of andere vreemde reden bij num_rows
wilt blijven je zou ofwel store_result()
. moeten aanroepen op het statement en verkrijg dan de num_rows
uit de instructie of bel get_result()
en lees de waarde van num_rows
op de geretourneerde resultatenset.