PHP,MySQL和AJAX:在数据库中存储所选元素

时间:2018-01-31 22:09:04

标签: javascript php mysql

我有多个带复选框的元素;在选择一个框时,我想将通过ajax数据参数传递的一些属性存储到数据库表中。这是JS和html标记的一个例子。

$("input[type="submit"]").live("change", function() {
    if($(this).is(":checked")) {
        $.ajax({
            type: 'post',
            url: 'fetch.php',
            data:
                {
                    id: $(this).attr('id'),
                    checked: 'yes'
                }
        })
    }
})
<li>
  <label for="one"></label>
  <input type="checkbox" name="one" id="one">
</li>
<li>
  <label for="two"></label>
  <input type="checkbox" name="two" id="two">
</li>
<li>
  <label for="three"></label>
  <input type="checkbox" name="three" id="three">
</li>

然而,作为一个PHP和mysql新手,在成功连接到我的mysql表后,我陷入了实际的PHP代码。以下没有做任何事情,我正在努力继续。

<?php
if(isset($_POST['id'])){
  if (is_array($_POST['id'])) {
    foreach($_POST['id'] as $value){
      $query = "INSERT INTO my_table VALUES ". $value. ";";
      mysql_query($query) or die(mysql_error());
    }
  } else {
      echo "nothing checked";
  }
}
?>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您的INSERT查询格式不正确。

尝试这样的事情:

$query = "INSERT INTO my_table (column_name) VALUES ('". $value. "')";

重要提示:您的代码容易受SQL injections攻击,并可能危及数据库的安全性。您应该使用PDOmysqli API来保护您的SQL查询,并使用prepare函数。