Как проверить, передаются ли правильные значения в mysqli - PullRequest
2 голосов
/ 20 февраля 2012

Я пытаюсь подсчитать строки, возвращаемые запросом в mysqli, я знаю, что предоставил правильный идентификатор пользователя и пароль, но он продолжает возвращать 0 для числа возвращенных строк. Я даже повторил идентификатор пользователя и хешированный пароль, который я связываю с запросом, затем предоставил его в heidiSql, и мне вернули одну строку.

if($query = $db->prepare("SELECT user_id, pword_hash FROM tbl_users WHERE user_id=? AND pword_hash=?")){

            $query->bind_param("ss", $user_id, $hash);
            $query->execute();
            echo $query->num_rows;

            if($query->num_rows > 0){
                echo 1;
            }   

        }

1 Ответ

2 голосов
/ 20 февраля 2012

Пожалуйста, прочитайте документацию для этой функции ('свойство').Комментарий на этой странице также уместен.

Вы должны использовать $query->store_result(); для буферизации всего результирующего набора в дескрипторе оператора, чтобы вы могли видеть, сколько строк возвращено.

Попробуйте это:

if($query = $db->prepare("SELECT user_id, pword_hash FROM tbl_users WHERE user_id=? AND pword_hash=?")){
    $query->bind_param("ss", $user_id, $hash);
    $query->execute();
    $query->store_result();
    echo $query->num_rows;
    if($query->num_rows > 0){
        echo 1;
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...