类stdClass的对象无法转换为字符串

时间:2012-03-18 12:10:37

标签: php mysql

我不知道为什么但是我得到了这个错误 :

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

对于此代码:

$sql = "SELECT * FROM player ORDER BY score DESC LIMIT $begin";
                    $arr = array();
                    while($obj = mysql_fetch_object(mysql_query($sql))) {
                            //$arr[] = $obj;
                            echo $obj;
                    }

2 个答案:

答案 0 :(得分:3)

您正在使用mysql_fetch_object(返回一个对象),然后尝试将其输出为字符串。那不行。

在您的情况下,您应该使用能够打印对象内容的函数。有许多但最直接的是print_rvar_dump。如果您在HTML上下文中输出,您可能想在输出周围打包<pre>标签以使其更具可读性,或者点击浏览器中的“查看来源”。

如果您正在编写自己的对象,则可以通过实现__toString() magic method

将它们“转换”为字符串

此外,正如人们在评论中所说,您的代码将在每次循环中运行查询。查看documentation here并阅读示例。

注意:出于SO的考虑,您可能已经简化了示例,但请确保清理变量(例如$begin)以避免SQL注入!

答案 1 :(得分:1)

使用print_rvar_dump代替echo