[英]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.