首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql_result()期望参数1是资源,对象给定

问mysql_result()期望参数1是资源,对象给定
EN

Stack Overflow用户
提问于 2015-06-06 10:21:47
回答 1查看 1.1K关注 0票数 1

作为登录系统的一部分,我需要检查用户名是否存在于数据库中,因此我创建了一个查询,以检查用户输入的用户名是否已经存在。

使用mysql_result,我检查id是否大于null。如果是:用户存在,如果不存在,则用户不存在。但是这里出错了,wampserver给了我这个错误:

警告: mysql_result()期望参数1是资源,在第6行的users.php中给出对象

代码语言:javascript
复制
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;
    }
}

这就是调用这个函数的代码:

代码语言:javascript
复制
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()。从this问题中得到了这个建议

关于像我这样的问题的所有答案都说,您不应该同时使用mysql和mysqli,而应该只使用其中的一个,但是当我只使用mysli时,我得到了错误,就像我在上面的一段中说的那样。

谁能告诉我怎么解决这个问题吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-06 10:27:50

您将mysql和mysqli混合在一起。mysqli驱动程序中没有函数mysqli_result()。不过,我找到了解决你问题的办法。来自PHP文档中的注释:

将一个旧项目从使用mysql扩展转换为mysqli扩展,我发现最恼人的变化是mysqli中缺少相应的mysql_result函数。虽然mysql_result通常是一个糟糕的函数,但它对于从结果集中获取单个结果字段值很有用(例如,如果查找用户ID)。 mysql_result的行为在这里是近似的,尽管您可能希望将它命名为mysqli_result以外的其他东西,以避免认为它是一个实际的内置函数。

守则:

代码语言:javascript
复制
<?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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30681644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档