我有mysql_num_rows问题。当我尝试登录时,会发生以下警告:mysql_num_rows()导致了警告
警告:mysql_num_rows()期望参数1是资源,对象在路径/到/ userClass.php行#no中给出。
我搜索了这个错误,并得到了,那是因为错误的SQL查询造成的。但我不确定这一点。请帮忙。
Userclass.php登录功能
$sql = "SELECT id, username FROM `user` WHERE username = '$username' AND hashed_password ='$password'";
$result = mysqli_query($this->con, $sql);
if (!$result) die ("Database query failed" . mysql_error());
else{
$count = mysql_num_rows($result);
if($count == 1){
$found_user = mysql_fetch_array($result);
$_SESSION['user_id'] = $found_user['id'];
$_SESSION['username'] = $found_user['username'];
header("Location:{$location}");
}else{
//username/password combo was not found in the database
$this->pass_notverified = "Username/password incorrect.";
return;
}
}
的header.php
<?php require_once 'class/userClass.php';?>
<?php $obj = new userClass;?>
<?php
if(isset($_POST['login'])){
$obj->login($_POST,"home.php");
}?>
的组合则完整的代码做同样的...你cannt混合的mysqli和mysql – alwaysLearn 2013-03-23 13:38:21
您注射'$之前不要使用'mysqli_real_escape_string'用户名和密码'到你的查询,不是吗?或者,更好的是,使用参数化查询。 – 2013-03-23 13:41:08
'mysql _ *()'API已被弃用。改用MySQLi或PDO_MySQL扩展。 [已过时mysql_ *()](http://php.net/manual/en/function.mysql-connect.php) – SparKot 2013-03-23 14:16:28