簡體   English   中英

更新查詢不起作用

[英]Update query doesn't work

今天我遇到了 PHP 的大問題。 我正在嘗試更新 MySQL 數據庫上的一行。 最大的問題是,如果我直接插入 phpMyAdmin 而不是我的 PHP 腳本,則查詢有效。

按照我的查詢(這是 $sqlQuery 的值):

UPDATE my_table SET id = '64', title = 'test', another_column = 'asdasdasdasd 2', category = '1', author = '1', status = '0', column = '0', date_created = '2011-08-13 15:33:54' WHERE id = '64'

在我的腳本中,我創建了一個循環來生成“SET”和“WHERE”之間的代碼,因為它來自數組。

另外,在你問我連接是否打開之前,我已經檢查了這段代碼(如下)並返回“打開”:

if (!$conn->connection) echo "closed";
else echo "opened";

我運行查詢的腳本:

if (mysql_query($sqlQuery, $conn->connection)) {
    $sqlResult = array(
        "status" => "ok",
        "result" => "edited"
    );
} else {
    $sqlResult = array(
        "status" => "error",
        "result" => "$sqlQuery"
    );
}

它總是返回“else”數組(狀態 = 錯誤和結果 = $sqlQuery)。

你應該echo mysql_error(); 在嘗試調試之前向 output 發送錯誤消息,但您的錯誤可能是由column = '0'引起的,因為column是 MySQL 中的保留字,您必須用反引號括起來,例如`column` = '0'

為什么要設置id = '64' WHERE id = '64' 無論如何,ID 都是INT ,你不應該引用它們。

此外,將"result" => "$sqlQuery"更改為"result" => $sqlQuery並執行var_dump($sqlQuery)以幫助調試。

您的id字段是自動遞增的主鍵嗎? 如果是這樣,那么您將無法在查詢中設置它(無論如何您都不應該這樣做,因為它是WHERE子句的一部分)。 通常,您應該只更新實際正在更改的字段(並且主鍵值通常不應作為更新的一部分而更改)。

暫無
暫無

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

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