我试图尽快摆脱一个错误.我正在使用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)
在获取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()将不会返回正确的行数,直到检索到结果中的所有行为止.