Wanneer u een instructie uitvoert via mysqli, zijn de resultaten niet echt in PHP totdat u ze ophaalt - de resultaten worden vastgehouden door de DB-engine. Dus de mysqli_stmt
object heeft geen manier om te weten hoeveel resultaten er onmiddellijk na uitvoering zijn.
Pas uw code als volgt aan:
$stmt->execute();
$stmt->store_result(); // pull results into PHP memory
// now you can check $stmt->num_rows;
Dit is niet van toepassing op uw specifieke voorbeeld, maar als uw resultatenset groot is, $stmt->store_result()
zal veel geheugen in beslag nemen. In dit geval, als je er alleen maar om geeft uit te zoeken of ten minste één resultaat is geretourneerd, sla de resultaten dan niet op; controleer in plaats daarvan of de metadata van het resultaat niet null is:
$stmt->execute();
$hasResult = $stmt->result_metadata ? true : false;