得到";可捕获的致命错误:类stdClass的对象无法转换为字符串“”;


Getting "Catchable fatal error: Object of class stdClass could not be converted to string"

首先,我是PHP的新手,我的英语有时不太好,所以我已经为你们可能不得不做的猜测道歉了。

我得到的错误是:

可捕获的致命错误:类stdClass的对象无法转换为字符串"

我的代码是:

mysql_connect("nope.com","nope","nope") or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("nope") or die ("Datenbank konnte nicht verbunden werden");
$nnamenow = $_SESSION['username']; 
echo(mysql_fetch_object(mysql_query("SELECT Name FROM USER WHERE Username LIKE '$nnamenow'")));

我对查询变量等尝试了很多不同的方法,因为到目前为止,用不同的方式重写代码足够多次总是能解决我的问题。

尝试将查询结果保存到类似的变量中

$result = mysql_query("SELECT Name FROM USER WHERE Username LIKE '$nnamenow'");

然后您可以按行进行迭代

while($row = mysql_fetch_assoc($result)) {
    echo $row['Name'];
}

因为这个查询可以返回多行:)

mysql_fetch_object返回一个对象。然后尝试echo所述对象。你不能echo一个对象,它会产生你看到的错误。您只能使用所述对象的echo属性。:

$obj = mysql_fetch_object(...);
echo $obj->Name;

您还应该在代码中添加更多的错误处理,最重要的是停止使用mysql_函数;它们已被弃用。并非所有事情都必须是一句话。

这个错误很明显,您正在尝试回显一个对象。

$result = mysql_fetch_object(mysql_query("SELECT Name FROM USER WHERE Username LIKE '$nnamenow'"));
var_dump($result); // echo $result->Name;

警告:请不要在新代码中使用mysql_*函数。它们不再被维护,并被正式弃用。是否看到红框?了解准备好的语句,并使用PDO或MySQLi-本文将帮助您决定哪一个。如果你选择PDO,这里有一个很好的教程。

在PHP中,您不能回显数组或对象。对于对象,这并不完全正确,因为您可以实现__toString()方法,该方法允许您管理如何在需要将对象转换为字符串时显示对象。

在您的情况下,您的对象是StdClass的实例,因此它不起作用。您需要执行一个循环来显示每个字段,或者单独显示每个字段(例如$result->Name)。