php - MySQli行数总是返回0?

时间:2014-12-24 17:36:33

标签: php mysql mysqli

rowLogin总是返回0?但是当我在sql上运行查询时,我得到了正确的结果!我已经看了很多解决方案,但实际上没有一个解决方案。

$queryLogin =("SELECT count(*) as count FROM `tblUser` WHERE `username` = '$username' and `password` ='$password'");
$resultLogin = $mysqli->query($queryLogin);
$rowLogin = $resultLogin->fetch_assoc();

echo $rowLogin['count']." rows in table tblUser.";

3 个答案:

答案 0 :(得分:1)

你的代码不是很好......

你真的需要使用MYSQLi预处理语句esp with username / pass checks ...

$mysqli = new mysqli(...);
$query = "SELECT count(*) as count FROM `tblUser` WHERE `username`=? and `password`=?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('ss',$username,$password);
$stmt->execute();
$result = $stmt->get_result();

if($result->num_rows){
    $row = $result->fetch_assoc();
    echo $row['count'] . " rows in table tblUser.";
}

我知道你可能正在考虑获取一些信息,但这是采取这种方式的最佳途径。不要继续走在你的道路上。

您的查询很可能因为实际查询周围( )而失败。因此,如果你想使用( )就行了$queryLogin

答案 1 :(得分:0)

$queryLogin =("SELECT count(*) as count FROM tblUser WHERE username = '".$username."' and password ='".$password."' ");
$resultLogin = $mysqli->query($queryLogin);
$rowLogin = $resultLogin->fetch_assoc();

echo $rowLogin['count']." rows in table tblUser.";

or

printf("Select returned %d rows.\n", mysqli_num_rows($resultLogin));

答案 2 :(得分:0)

您不需要范围。

$queryLogin = "SELECT count(*) as count FROM `tblUser` WHERE `username` = '$username' and `password` ='$password'";
$resultLogin = $mysqli->query($queryLogin);
$rowLogin = $resultLogin->fetch_assoc();

echo $rowLogin['count']." rows in table tblUser.";

仅在内联查询中使用范围。 你已经在这里使用了范围...

$resultLogin = $mysqli->query($queryLogin);