首先,我是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
)。