MySQLi Hazırlanan Açıklama Sorgu Issue

1 Cevap php

Ben hazır deyimleri MySQLi nispeten yeniyim, ve bir hata çalıştırıyorum. Bu kodu alın:

$user = 'admin';
$pass = 'admin';

if ($stmt = $mysqli->query("SELECT * FROM members WHERE username='$user' AND     password='$pass'"))
{
echo $stmt->num_rows;
}

Bu, olması gerektiği gibi, "1" gösterecektir.

Bu kod bir sonraki parça olsa, "0" verir:

$user = 'admin';
$pass = 'admin';

if ($stmt = $mysqli->prepare("SELECT * FROM members WHERE username=? AND password=?"))
{
$stmt->bind_param("ss", $user, $pass);
$stmt->execute();
echo $stmt->num_rows;
}

Herhangi bir fikir neden?

1 Cevap

Eğer satır sayısını girmeden önce store_result() çağırmanız gerekir


$user = 'admin';
$pass = 'admin';

if ($stmt = $mysqli->prepare("SELECT * FROM members WHERE username=? AND password=?")) { $stmt->bind_param("ss", $user, $pass); $stmt->execute(); $stmt->store_result(); // add this line echo $stmt->num_rows; }