簡體   English   中英

UPDATE查詢未更新MySql數據庫時出錯

[英]Error with UPDATE query not updating my MySql database

我正在嘗試將數據數組傳遞給Update查詢,以更新客戶記錄。 但是,由於某些原因,成功頁面顯示我的詳細信息已更新,但未更新。 如果我調試並回顯

echo implode(', ', $update);
die();

我得到結果

mem_first_name ='Josh', mem_last_name ='smith', mem_email ='j.smith@gmail.com', allow_email ='0'

在我看來,這很好。 這是我的update_user函數

function update_user($mem_id, $update_data) {
$update = array();
array_walk($update_data, 'array_sanitize');

foreach ($update_data as $field=>$data) {
    $update[] = '`' . $field . '` = \'' . $data . '\'';
}

mysql_query("UPDATE `members` SET " . implode(', ', $update) . " WHERE `mem_id` = '$mem_id'") or die(mysql_error());
}

還有我的$ update_data數組

if (isset($_GET['success']) === true && empty($_GET['success']) === true) {
$message = 'Your details have been updated';
} else {
if (empty($_POST) === false && empty($errors) === true) {

    $update_data = array(
            'mem_first_name' => $_POST['mem_first_name'],
            'mem_last_name' => $_POST['mem_last_name'],
            'mem_email' => $_POST['mem_email'],
            'allow_email' => ($_POST['allow_email']) ? 1 : 0
    );

    update_user($session_member_id, $update_data);
    header('Location: settings.php?success');
    exit();
} else if (empty($errors) === false) {
    $message = output_errors($errors);
}
}

所以我計算出內爆后我失去了反引號,因此列名沒有反勾號

這是一種錯字(當然不是真正的問題)。
您正在向字段添加反引號

$update[] = '`' . $field . '`
             ^   here   

但是他們不在調試中。
因此,您正在運行或發布了錯誤的代碼,這使整個問題變得毫無意義。

檢查與數據庫的連接,和表字段名稱拼寫。,我認為這段代碼沒有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM