php - 对index.php中的非对象调用成员函数fetch()

标签 php mysql fetch

        $sql = $db->query('SELECT `xp`,`deposits`,`withdraws`,`zeros`,`wins`,`daily` FROM `users` WHERE `steamid` = ' . $db->quote($user['steamid']));
    $row = $sql->fetch();
    $profile['xp'] = $row['xp'];
    $profile['deposits'] = $row['deposits'];
    $profile['withdraws'] = $row['withdraws'];
    $profile['zeros'] = $row['zeros'];
    $profile['level'] = LevelFromXP($row['xp'])[0];
    $profile['level_name'] = LevelFromXP($row['xp'])[1];
    $profile['rank'] = RankFromWins($row['wins']);
    $profile['bet_wins'] = $row['wins'];
    if ($row['daily'] == "0") {
        if (explode(" | ", $user['name'])[1] == "mysitehehe.com") {
            $daily = 1;
        } else {
            $daily = -1;
        }
    } elseif ($row['daily'] < time()) {
        $daily = 1;
    } else {
        $daily = 0;
        $profile['dailywait'] = $row['daily'] - time();
    }


    $page = getTemplate('main.tpl', array('page' => $_GET['page'], 'db' => $db, 'user' => $user, 'profile' => $profile, 'daily' => $daily, 'happyhour' => $happyhour, 'settings' => $settings));
    echo $page;
    break;

为什么我会收到此错误? fatal error :在第 420 行对 index.php 中的非对象调用成员函数 fetch()

最佳答案

您的查询失败,因此 $sql 是 bool 值 false,而不是您可以调用 fetch 的查询结果。

在使用结果之前应该检查查询是否成功

$sql = $db->query('SELECT `xp`,...');
if(!$sql){
    //DB error: prob bad query or wrong connection credentials
    die($sql->error);
}
elseif($sql->num_rows===0){
    // 0 record found
}
else{
   $row = $sql->fetch();
   ...
}

关于php - 对index.php中的非对象调用成员函数fetch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38538232/

相关文章:

php - 如何防止 PHP 中的 SQL 注入(inject)?

java - 在Netbeans上在线发布用Java开发的网页

ios - 创建新对象时查询核心数据的特定属性,如果存在则返回对象,如果不存在则创建一个新对象

php - MySQL + PHP 中行之间的除法

PHP 分页 - 仅 1 页有效

php - 在 linux 框中通过 SSH 隧道运行 php 脚本

php - 从多个输出中选择mysql中带有特殊字符的一个

php - 无法通过 Homebrew 软件 OSX Yosemite 安装 mcrypt

MySQL 从具有时间戳列的表中选择重复时间间隔内的所有条目

Reactjs useEffect 获取数据后的清理功能