簡體   English   中英

mysql查詢插入問題

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

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