【问题标题】:Getting error: Object of class mysqli_result could not be converted to string [duplicate]出现错误:类 mysqli_result 的对象无法转换为字符串 [重复]
【发布时间】:2016-06-17 15:16:59
【问题描述】:

我的代码很乱,但我想在我的网站上做一个论坛。

<?php 
    $conn = mysqli_connect("localhost", "root", "");
    if($conn->connect_error){
        die("Connection Failed");
    }
    mysqli_select_db($conn, 'forum');
    $get= "select * from forum";
    $runq = mysqli_query($conn, $get);
    while($fetch_value=mysqli_fetch_array($runq)){
        $get_usr_name=$fetch_value['username'];
        $get_body = $fetch_value['info'];
        }
        $result = $conn->query($get);
        if(is_null($get_body)){

        }
        else{
        echo "<div id='inputform1'>";
        for($row = 1; $row < $result->num_rows; $row++){

            $dbhost = "localhost";
            $dbuser = "root";
            $dbpass = "";
            $dbname = "forum";
            $connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
            if(mysqli_connect_errno()){
                die("database connection failed: ") .
                    mysqli_connect_errno() .
                    " (" . mysqli_connect_errno() . ")";

            }
            $result1 = mysqli_query($connection, "select info from forum where id='$row';");
            $result = mysqli_query($connection, "select username from forum where id='$row';");
        echo "<strong class=\"after_username\">by: {$result}</strong><br><br><p id=\"bodyforum\">{$result1}<br><br></p>";
        }
        echo "</div>";

    }
    ?>

我似乎无法发布用户名和密码;它一直在说:

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

我尝试了许多不同的“策略”,但似乎都没有奏效。有人可以帮我吗?

【问题讨论】:

  • 哪一行报错了?为什么要运行两次相同的查询?
  • chris85 是正确的:您可以使用select info, username from forum where id='$id'" 来避免两次查询。但是,$id 应该取自查询结果;您假设查询返回的所有行的 ID 将从 1 开始并定期递增。不太可能是这种情况。

标签: php mysqli


【解决方案1】:

mysqli 查询的返回值是一个结果对象。它不仅仅是一组行;它还包含有关查询、成功或失败、错误消息和其他内容的信息。您需要显式使用result object's methods 来访问查询返回的行。

【讨论】:

    【解决方案2】:

    我认为问题出在这一行

    echo "<strong class=\"after_username\">by: {$result}</strong><br><br><p id=\"bodyforum\">{$result1}<br><br></p>";
    

    $result 和 $result1 不是字符串。您需要将其循环起来,然后访问记录。

    【讨论】:

    • 哦,好的,谢谢!我试过了,它对我有用。
    猜你喜欢
    • 2019-03-19
    • 2014-03-31
    • 2022-01-05
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多