【发布时间】:2018-07-27 04:34:51
【问题描述】:
我有一个简单的功能可以从我的数据库中删除帐户。我已经写了如下
public function removeAccount($email) {
$response = array('code' => 0, 'error' => false);
$stmt = $this->conn->prepare("SELECT id FROM user WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows) {
$user = $result->fetch_assoc();
$id = $user['id'];
$stmt->close();
$stmt = $this->conn->prepare("DELETE FROM number_list WHERE user_id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->close();
$stmt = $this->conn->prepare("DELETE FROM number_status WHERE user_id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->close();
$stmt = $this->conn->prepare("INSERT INTO old_user(email,serial,premium) SELECT email, device_id, membership FROM user WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->close();
$stmt = $this->conn->prepare("DELETE FROM user WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->close();
if ($stmt->affected_rows) {
$response["code"] = 1;
}
}
return $response;
}
它在下面的行中给我警告
if ($stmt->affected_rows) {
我已经寻找解决它的方法,但不知道什么是错误的以及什么可以解决它。请检查并让我知道是否有人可以对此有所了解。非常感谢。
【问题讨论】:
-
我不认为你可以在
$stmt->close()通话后使用$stmt->affected_rows。你应该在调用close()之前记录affected_rows的值。 -
@Nick 你是对的。非常感谢。它解决了我的问题。