2012-09-04 160 views
0

這部分代碼很好,我沒有看到任何問題,但仍然無法將其插入到數據庫中,出現以下消息。將選定的複選框值插入數據庫

您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本在線路附近使用「檢查(數量)VALUES(」 2「)」正確的語法手冊1

<?php 
    if(isset($_POST['submit'])){ 
      $checkBox = $_POST['mycheck_box'];  
      for($i=0; $i< sizeof($checkBox); $i++){  
      echo $query = "INSERT INTO check (quantity) VALUES ('".$checkBox[$i]."')"; 
      echo "<br/>"; 
         mysql_query($query) or die(mysql_error()); 
      } 
     } 
    ?> 
+0

如果沒有檢查,你甚至不會有存儲在$ _POST ['mychk']的任何值 –

+0

確定但我確實爲第一個示例選擇了一個值,並且錯誤消息顯示了可能是什麼問題有任何想法嗎。 –

+0

請勿直接在查詢中使用未經過濾的值。逃生,或使用更簡單和更現代的數據庫接口(PDO與準備好的語句)。 – mario

回答

0

嘗試

$query = "INSERT INTO `check` (quantity) VALUES ('".$checkBox[$i]."')"; 

檢查是創建表時使用MySQL關鍵字。

請注意,在對數據庫執行任何操作之前,您應該過濾從表單接收的任何$ _POST值。

+0

伴侶你是男人。非常感謝它,我從來沒有新的,你可以逃脫表名。你能否向我解釋你對查詢做了什麼? –

+0

@BashaMan在表名中添加反引號(')通常是避免遇到關鍵字問題的好主意。它所做的就是告訴MySQL把它當作一個名字。很高興我能幫到 –

+0

再次感謝,我已經接受並投票答覆,保持良好的幫助。再次感謝 –