-1
我在數據庫中有一些用戶,我可以編輯他們的名稱和密碼,但是當我嘗試編輯用戶名時,查詢失敗。試圖更改用戶名時MySQL查詢失敗
這裏是我的代碼
$user->username = $db->mysql_prep($_POST["username"]);
$user->hashed_password = ($_POST["password"]);
$user->firstname = $db->mysql_prep($_POST["firstname"]);
$user->lastname = $db->mysql_prep($_POST["lastname"]);
$user_query = $user->find_user_by_username($user->username);
$user->id = $user_query["id"];
$result = $user->change_user_by_id($user);
//->id,$user->username,$user->hashed_password,$user->firstname,$user->lastname
unset($user);
我change_user_by_id方法:
public function change_user_by_id($user){
global $db;
global $session;
$query = "UPDATE users SET ";
$query .= "username = '{$user->username}', ";
$query .= "first_name = '{$user->firstname}', ";
$query .= "last_name = '{$user->lastname}' ";
$query .= "WHERE id = {$user->id} ";
$query .= "LIMIT 1";
$result = mysqli_query($db->connection, $query);
$db->confirm_query($result);
if ($result && mysqli_affected_rows($db->connection) == 1) {
// Success
$session->message("User updated.");
redirect_to("list.php");
} else {
// Failure
$session->message("User update failed.");
}
}
而且我find_user_by_username方法:
public static function find_user_by_username($username="default"){
global $db;
$query = "SELECT * ";
$query .= "FROM users ";
$query .= "WHERE username = '{$username}' ";
$query .= "LIMIT 1";
$user_set = mysqli_query($db->connection, $query);
$db->confirm_query($user_set);
if($user = mysqli_fetch_assoc($user_set)) {
return $user;
} else {
return null;
}
}
編輯:
唯一犯錯或者我得到的是從confirm_query功能我得到的消息「數據庫查詢失敗」下面是函數:
public function confirm_query($result_set) {
if (!$result_set) {
die("Database query failed.");
}
}
編輯2:
新增的錯誤信息,這就是我得到:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1
你得到一個MySQL錯誤?這將有助於解決問題。 – Bram
我得到的唯一錯誤來自confirm_query功能我得到的消息 「數據庫查詢失敗」 下面是函數: \t公共職能confirm_query($ result_set){ \t \t如果($ result_set!){ \t \t \t die(「數據庫查詢失敗。」); \t \t} \t} – P22
試試這個:'公共職能confirm_query($ result_set){如果(!$ result_set){模具(mysql_error()); }}' – Bram