1
不知道爲什麼這不起作用。我按照完全相同的過程(即準備,綁定,執行)在同一個數據庫上執行SELECT。但由於某種原因的更新不會在數據庫中更新。PHP MYSQLI編寫的update語句不起作用?
下面是代碼:
$stmtUpdate = $mysqli->prepare("UPDATE license_keys.$injection_key_text_type
SET given_date = CURRENT_DATE(), contact_email = ?, given_bool = ?, contact_id = ?
WHERE key_text_id = ?;";
$stmtUpdate->bind_param("siss",$recipient_email,1,$contact_id,$key_text_id);
$stmtUpdate->execute();
$stmtUpdate->close();
事情我已經試過
- 纏繞第一行中的if語句
- 交換
given_date = CURRENT_DATE
到given_date = ?
則剛添加的任意字符串到我的綁定參數即($stmtUpdate->bind_param("ssiss","11-8-2014",$recipient_email,1,$contact_id,$key_text_id);
- 在聲明結尾處嘗試使用和不使用「;」,因爲它使用w使用程序版本而不是OO方式。
另請注意,如果我作爲程序運行它工作得很好,但我需要它使用預處理語句。 下面是程序代碼:
$mysqli->query("UPDATE license_keys.$injection_key_text_type
SET given_date = CURRENT_DATE(), contact_email = '$recipient_email', given_bool = 1, contact_id = '$contact_id'
WHERE key_text_id = '$key_text_id';");
非常好的建議,我什至沒有想到這一點。所以這給了我一個更好的想法,因爲$ key_text_id是一個int,所以我做了這個改變,但奇怪的是$ contact_id被存儲爲一個varchar?我想現在可能與'given_date = CURRENT_DATE()'函數有關。因爲我的測試頁甚至沒有吐出原本放在腳本頂部的html。 非常感謝您的建議 – 2014-11-08 18:17:04
'given_date'列類型爲'DATE','DATETIME'或'TIMESTAMP'? – EternalHour 2014-11-08 18:22:49
'given_date'在數據庫中輸入'date' – 2014-11-08 18:28:37