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

Php 类mysqli_result的对象无法转换为字符串错误,php,mysqli,Php,Mysqli,我请求谷歌帮助我,但我没有运气-( 以下是生成错误的特定代码: $this->conn->query("UPDATE tz_members SET confirm='yes' WHERE usr='".$uname."'"); 整个功能如下所示: function update_confirm_field($code) { $uname = $this->conn->query("SELECT usr FROM tz_members WHERE

我请求谷歌帮助我,但我没有运气-( 以下是生成错误的特定代码:

$this->conn->query("UPDATE tz_members SET confirm='yes' WHERE usr='".$uname."'");
整个功能如下所示:

    function update_confirm_field($code) {

    $uname = $this->conn->query("SELECT usr FROM tz_members WHERE 
                     confirm='".$code."'");

    $this->conn->query("UPDATE tz_members SET confirm='yes' WHERE 
                     usr='".$uname."'");
}

如果我错过了一些愚蠢的东西,请原谅。有人能告诉我是什么导致了问题吗???

$uname您第一次查询返回的是mysql\u结果对象,而不是字符串。 您必须从该结果中获取数据,以便在第二次查询中使用它

while ($row = mysql_fetch_assoc($result)) {
    echo $row["usr"];
}

query
方法返回查询结果的指针/对象,它不只是直接转储响应。您需要执行类似于
list($uname)=$uname->fetch_row;

的操作。问题是$uname是一个对象,而不是字符串。您需要调用$uname的一个方法来访问数据

$updateQuery = "UPDATE tz_members SET confirm='yes' WHERE usr= (SELECT usr FROM tz_members WHERE confirm='".$code."')";

// Get name and update in the same query
$this->conn->query($updateQuery);
    function update_confirm_field($code) {

    $uname = $this->conn->query("SELECT usr FROM tz_members WHERE 
                     confirm='".$code."'");

    while ($row = $uname->fetch_assoc()) { 

    $this->conn->query("UPDATE tz_members SET confirm='yes' WHERE 
                     usr='".$row["usr"]."'");

    }

}

这应该可以做到(或上述解决方案之一)。

EDIT:^这是假设在第一次查询的结果中返回多行时代码不会中断。调用$uname->num_rows()可能不是一个坏主意更好的是,修改MySQL表,创建一个新的bool列,而不是设置confirm='yes',然后使confirm列唯一。