2014-01-09 3 views
0

Я все еще новичок в PHP и MySQL. Я только начал изучать MySQLi до нескольких дней, и я столкнулся с этой проблемой. Эта страница называется login.php. Проблема в том, что запрос возвращает 0 num строк. Когда я запускаю запрос в phpmyadmin, он показывает это сообщение и 1 строку.MYSQLi num_rows всегда возвращает 0

Отображение строки 0 - 0 (1 Всего запросов занял 0.0010 сек)

Изображение:

screenshot

Вот мой код:

<?php 
session_start(); 
require 'config.php'; 
$username = $_POST['username']; 
$password = $_POST['password']; 
$salt = 'qwerty'; 
$pass_prepare = md5($salt).sha1($password); 

if ($_SERVER['REQUEST_METHOD'] != "POST") { 
    header('Location: index.php'); 
} 
if (isset($username) && isset($pass_prepare)) { 
    $stmt = mysqli_prepare($db_con, "SELECT user_id, username, password, rank, last_activity FROM imes_users WHERE username=? AND password=? LIMIT 1"); 
    mysqli_stmt_bind_param($stmt, "ss", $username, $pass_prepare); 
    mysqli_execute($stmt); 
    mysqli_stmt_bind_result($stmt, $user_id, $username1, $password1, $rank, $last_activity); 
    mysqli_stmt_fetch($stmt); 
    echo mysqli_num_rows($stmt); 
} else { 
    echo 'error'; 
} 

Могли вы поможете мне решить эту проблему?

ответ

0
$sql = mysqli_query($connection, $query); 
$count = $sql->num_rows; // $count contains now your value 
+0

Он использует подготовленные заявления. –

0

Вы используете подготовленные операторы, поэтому синтаксис несколько отличается. Вы хотите использовать mysqli_stmt_num_rows вместо mysqli_num_rows.

$stmt = mysqli_prepare($db_con, "SELECT user_id, username, password, rank, last_activity FROM imes_users WHERE username=? AND password=? LIMIT 1"); 
mysqli_stmt_bind_param($stmt, "ss", $username, $pass_prepare); 
mysqli_execute($stmt); 
mysqli_stmt_bind_result($stmt, $user_id, $username1, $password1, $rank, $last_activity); 
mysqli_stmt_fetch($stmt); 
echo mysqli_stmt_num_rows($stmt); 
+0

Спасибо за исправление, но он снова вернулся 0. Здесь var_dumb в $ зЬтЬ: объект (mysqli_stmt) # 2 (10) { [ "affected_rows"] => Int (-1) [ "insert_id"] => Int (0) [ "num_rows"] => Int (0) [ "param_count"] => Int (2) [ "field_count"] => INT (5) [ "ERRNO"] => Int (0) [ "ошибка"] => строка (0) "" [ "error_list"] => массив (0) {} [ "SQLSTATE" ] => строка (5) "00000" ["id"] => int (1) } – user3179358

Смежные вопросы