MYSQLI_NUM_ROWS总是返回0

use*_*919 0 php syntax mysqli

我试图尽快摆脱一个错误.我正在使用mysql_num_rows但它总是返回0.而我不知道是不是因为我的语法错误或者什么......你们可以帮帮我吗?这是代码;

<?php
include_once("checklogin.php");
$u = "";
if(isset($_GET["u"])){
    $u = preg_replace('#[^a-z0-9]#i', '', $_GET['u']);
} else {
    header("location: http://www.myswesite.com/login.php");
    exit();    
}
$sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1";
$user_query = mysqli_query($connection, $sql);
$numrows = mysqli_num_rows($user_query);
if($numrows < 1){
    echo "User does not exist or is not yet activated, press back";
    exit(); 
}
?>
Run Code Online (Sandbox Code Playgroud)

Bil*_*win 5

在获取num行之前,必须使用store_result来缓冲结果集.

$user_query = mysqli_query($connection, $sql);
mysqli_store_result($connection);
$numrows = mysqli_num_rows($user_query);
Run Code Online (Sandbox Code Playgroud)

http://www.php.net/manual/en/mysqli-result.num-rows.php:

对于无缓冲的结果集,mysqli_num_rows()将不会返回正确的行数,直到检索到结果中的所有行为止.