【问题标题】:Fatal error to Call to a member function fetch_assoc() - why is fetch_assoc() is not working?调用成员函数 fetch_assoc() 的致命错误 - 为什么 fetch_assoc() 不起作用?
【发布时间】:2018-06-16 04:35:51
【问题描述】:

这是错误 DbOperations。 php代码:

public function getUserByUserid($user_id){
    $stmt = $this->con->prepare("SELECT * FROM mydb.User WHERE user_id = ?" );
    $stmt->bind_param("s", $user_id);
    return $stmt->get_result()->fetch_assoc();
}

在另一个 userLogin.php 中,我在这里使用 getUserByUserid($user_id):

if($db->userLogin($_POST['user_id'], $_POST['password'])){
    $user = $db->getUserByUserid($_POST['user_id']);
    $response['error'] = false;
    $response['user_id'] = $user['user_id'];
    $response['name'] = $user['name'];
    $response['contact_no'] = $user['contact_no'];
    $response['email'] = $user['email'];
    $response['role'] = $user['role'];

这是错误信息:

<b>Fatal error</b>:  Call to a member function fetch_assoc() on a non-object in
<b>C:\xampp\htdocs\Android\includes\DbOperations.php</b> on line
<b>41</b>
<br />

第 41 行是:return $stmt-&gt;get_result()-&gt;fetch_assoc();

不确定 fetch_assoc() 问题是什么,我是初学者...谢谢您的帮助:)

【问题讨论】:

  • 你真正的问题(如果你真的阅读了错误信息)应该是why does getResult() return a non-object ?
  • 我想在请求任何结果查询之前必须执行

标签: php mysql json android-studio mysqli


【解决方案1】:

必须在尝试获取结果之前执行查询。通常使用execute:

public function getUserByUserid($user_id){
    $stmt = $this->con->prepare("SELECT * FROM mydb.User WHERE user_id = ?" );
    $stmt->bind_param("s", $user_id);
    // Executing a query
    $stmt->execute();

    return $stmt->get_result()->fetch_assoc();
}

更进一步,您可以检查您的执行是否成功完成(get_result() 在这种情况下返回 not false),并在出现错误的情况下 - 以某种方式获取带有 mysqli_errno() 的错误消息。更多信息(如通常manual

【讨论】:

    猜你喜欢
    • 2016-08-30
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多