[英]mysql query insert issue
我的查詢未插入,並且沒有任何錯誤。 無法弄清楚為什么不插入
foreach($_POST as $key => $value) {
$clean[$key] = mysql_real_escape_string($value);
}
if(isset($_POST['submit'])) {
$entry = "INSERT INTO test (Word, Type, Lang, Country, Gender, Advice, y_Advice, Notes,
EditorNotify, Equiv)
VALUES('".$clean["word_field"]."',
'".$clean["type_field"]."',
'".$clean["lang"]."',
'".$clean["Country"]."',
'".$clean["gender"]."',
'".$clean["advice"]."',
'".$clean["y_advice"]."',
'".$clean["Notes"]."',
'".($clean["Notes"] != '' ? '1' : '')."',
'".$clean["Equiv"]."')";
echo mysql_query ($entry);
mysql_query ($entry);
嘗試更換:
(Word, Type, Lang, Country, Gender, Advice, y_Advice, Notes,
EditorNotify, Equiv)
附:
(`Word`, `Type`, `Lang`, `Country`,`Gender`, `Advice`, `y_Advice`, `Notes`,
`EditorNotify`, `Equiv`)
由於這個原因,您實際上要進行兩次插入:
echo mysql_query ($entry);
mysql_query ($entry);
echo
行將運行查詢,其后的行也將運行。 您需要擺脫它。 (盡管我猜您只是出於測試目的將其放在其中?)
取而代之的是,我建議僅回顯$entry
本身,這樣您就可以看到完成的SQL字符串。 您可能會立即發現查詢中的錯誤。
如果沒有,請嘗試將該字符串復制並粘貼到SQL查詢程序中,以查看實際的錯誤是什么。 這樣您就可以處理查詢,直到正確為止。
您也可以使用PHP命令mysql_error()
從PHP中獲取錯誤,但是當您遇到一個奇怪的SQL錯誤時,通常比直接在PHP代碼中進行查詢更快捷,更輕松。
希望能有所幫助。
您不知道是否遇到任何錯誤。 首先,擺脫echo mysql_query()
。 然后運行:
mysql_query($query) or die(mysql_error());
如果mysql_query()
返回false
,失敗時將執行false
,則查詢生成的任何MySQL錯誤現在都將顯示在屏幕上。
只需注意一點:您應該使用$clean = array();
初始化$clean
$clean = array();
如果問題是條件觸發器未觸發,則問題可能出在其他地方。 您的表單中是否有一個名為“ submit”的<input>
,表單的方法是post
嗎?
查詢本身對我來說還可以。 我認為很難閱讀,所以我會這樣做,但這只是個人風格:
$notify = $clean['Notes'] != '' ? '1' : '';
$query = <<<SQL
INSERT INTO test
(Notes, EditoryNotify)
VALUES
($clean[Notes], $notify)
SQL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.