【问题标题】:Object can't be converted to a string in MySQLi PHP [duplicate]对象无法在 MySQLi PHP 中转换为字符串 [重复]
【发布时间】:2014-09-05 13:11:39
【问题描述】:

可捕获的致命错误:类 mysqli_result 的对象无法在第 20 行的 C:\xampp\htdocs\xxx\dash.php 中转换为字符串

我相当新,作为一个老派编码员,只是使用 mysql_result 来获取这些数据,我不知道如何去做。我有一个类->函数设置。

dash.php 的第 20 行包含:

echo $user->GetVar('rank', 'Liam', $mysqli);

同时,函数是:

function GetVar($var, $username, $mysqli)
    {
        $result = $mysqli->query("SELECT " . $var . " FROM users WHERE username = '" . $username . "' LIMIT 1");
        return $result;
        $result->close();
    }

现在,据我了解,我打算将 $result 转换为字符串,但我并不完全了解如何执行此操作。我尝试过使用几种方法,但无济于事。所以我来到社区希望得到答案,我也环顾四周,但注意到所有其他线程都在请求 num_rows,而我只想从查询选择中获取字符串。

【问题讨论】:

  • 你必须先获取它,先收集结果然后返回你想要的方式,一个数组等。实际上它在 php manual
  • 没错。您实际上要返回的是(原始?) MySQLi 对象,当然不能将其转换为字符串。还。 $result->close 永远不会被执行;既然你在return语句之后关闭了连接,就提一下吧。

标签: php mysql mysqli


【解决方案1】:

您必须先获取它,然后才能回显结果。粗略的例子:

function GetVar($var, $username, $mysqli) {
    // make the query
    $query = $mysqli->query("SELECT ".$var." FROM users WHERE username = '".$username."' LIMIT 1");
    $result = $query->fetch_assoc(); // fetch it first
    return $result[$var];
}

然后使用你的函数:

echo $user->GetVar('rank', 'Liam', $mysqli);

重要提示:由于您刚刚开始,请查看prepared statements。不要直接在查询中附加用户输入。

【讨论】:

    【解决方案2】:
    if ($result = $mysqli->query($query)) {
        while($row = $result->fetch_object()) {
                echo row['column_name'];
            }
    }
    $result->close();
    

    在你看到 'column_name 的地方放上你想从中获取字符串的列的名称。

    【讨论】:

    • 我最诚恳的道歉,我一定没有把线程说清楚。我正在使用一个函数来检索数据。我已经更新了函数是什么。
    • $result 无法转换为字符串,因为它是一个数组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2015-05-15
    • 2019-11-04
    • 2019-07-10
    • 1970-01-01
    • 2011-01-28
    • 2019-03-19
    相关资源
    最近更新 更多