简体   繁体   English

无法在MySQLi PHP中将对象转换为字符串

[英]Object can't be converted to a string in MySQLi PHP

Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\\xampp\\htdocs\\xxx\\dash.php on line 20 可捕获的致命错误:在第20行的C:\\ xampp \\ htdocs \\ xxx \\ dash.php中,类mysqli_result的对象无法转换为字符串

I am quite fairly new, and being a old-school coder, simply using mysql_result to grab such data, I am unaware of how to go about this. 我是相当新的人,并且是一名老式的编码员,仅使用mysql_result来获取此类数据,我不知道该如何处理。 I have a class->function setup. 我有一个课程->功能设置。

Line 20 of dash.php contains: dash.php的第20行包含:

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

While, the function is: 而,函数是:

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

Now, to my understanding, I am meant to convert $result into a string, but I am not fully aware of how to do so. 现在,据我了解,我打算将$ result转换为字符串,但是我并不完全知道该怎么做。 I've tried using a few methods, but to no avail. 我尝试使用一些方法,但无济于事。 So I've come to the community to hopefully get a answer, I've also looked around but noticed that all other threads are asking for num_rows, while I just want to grab the string from the query select. 因此,我来​​到社区希望获得答案,我也环顾四周,但注意到所有其他线程都在请求num_rows,而我只是想从查询select中获取字符串。

You have to fetch it first before echoing the results. 在回显结果之前,您必须先获取它。 Rough Example: 粗略的例子:

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];
}

Then use your function: 然后使用您的函数:

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

Important Note: Since you're starting out, kindly check about prepared statements . 重要说明:由于您是从入门开始,请检查准备好的语句 Don't directly append user input on your query. 不要将用户输入直接附加到查询中。

Read this tutorial. 阅读本教程。 it explain how to read and display data from a dataabse 它说明了如何读取和显示数据表中的数据

Select Data From a Database Table 从数据库表中选择数据

if ($result = $mysqli->query($query)) {
    while($row = $result->fetch_object()) {
            echo row['column_name'];
        }
}
$result->close();

where you see 'column_name put the name of the column you want to get the string from. 您在其中看到'column_name的位置放置了要从中获取字符串的列的名称。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM