我请谷歌帮助我,我没有运气。 :-( 以下是生成错误的特定代码:
$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."'");
}
如果我错过了一些愚蠢的话,请原谅我。任何人都可以告诉我是什么导致了问题吗???
答案 0 :(得分:6)
问题是$ uname是一个对象,而不是一个字符串。您需要调用$ uname的方法之一来访问数据。
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"]."'");
}
}
应该这样做(或上述解决方案之一)。
答案 1 :(得分:1)
$ uname 是一个mysql_result对象,而不是字符串。 您必须从该结果中获取数据才能在第二个查询中使用它。
while ($row = mysql_fetch_assoc($result)) {
echo $row["usr"];
}
答案 2 :(得分:0)
query
方法返回查询结果的指针/对象,它不只是直接转储响应。您需要执行list($uname) = $uname->fetch_row;
答案 3 :(得分:0)
$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);