作为登录系统的一部分,我需要检查数据库中是否存在用户名,因此我创建了一个查询,检查用户输入的用户名是否已经存在。
使用mysql_result
,我检查id是否大于null。如果是:用户存在,如果不是,则用户不存在。但这里出了问题,wampserver给了我这个错误:
警告:mysql_result((要求参数1是resource,在第6行的users.php中给出的对象
function user_exists($username){
global $user_db;
$username = sanitize($username);
$query = mysqli_query($user_db , "SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'");
$result = mysql_result($query, 0); //line 6
if(!$result){
return false;
}else{
return true;
}
}
这就是调用该函数的代码:
if(user_exists('name') === true){
echo 'exists';
}
$user_db = mysqli_connect("localhost","root","","databaseName");
我尝试了什么:
如果我这样做:mysqli_result($result,0,"id");
,我会得到这个错误:Call to undefined function mysqli_result()
。从这个问题中得到了这个建议
像我这样的问题的所有答案都说你不应该使用mysql
和CCD_ 5,但只有其中一个,但当我只使用CCD_。
有人能告诉我怎么解决这个问题吗。
您将mysql和mysqli混合了一点。mysqli驱动程序中没有函数mysqli_result((。然而,我找到了解决你问题的办法。来自PHP文档中的注释:
将旧项目从使用mysql扩展转换为mysqli扩展,我发现最烦人的变化是缺少mysqli中对应的mysql_result函数。而mysql_result是一般来说,函数很糟糕,它对获取单个结果集的结果字段值(例如,如果查找用户的ID(。
mysql_result的行为在这里是近似的,尽管您可能想要将其命名为mysqli_result以外的名称,以避免思考这是一个实际的内置函数。
代码:
<?php function mysqli_result($res, $row, $field=0) {
$res->data_seek($row);
$datarow = $res->fetch_array();
return $datarow[$field]; }
?>
来源:http://php.net/manual/en/class.mysqli-result.php