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列唯一。