2012-09-04 105 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

再次感谢,我已经接受并投票答复,保持良好的帮助。再次感谢 –