如何使用php传递选择框值与数组并存储在数据库中

时间:2016-12-13 06:51:25

标签: php html forms mysqli

我想在MySQL数据库中存储一组值。这里,grade变量是一个包含html select元素值的数组。它目前无法正常工作。这是我的PHP代码:

<?php
if (isset($_POST["sub"])) {
    $query = "UPDATE course_reg set grade=";
    $values = $_POST['grade'];
    $valuesArr = array();
    foreach ($values as $a){
        $valuesArr[] = mysql_real_escape_string($a);
        //$valuesArr[] = $a;
    }
    $query .= implode(',', $valuesArr);
    $grade_upp = mysqli_query($con,$query);
}
?>

2 个答案:

答案 0 :(得分:1)

你的字符串周围需要'

<?php
if (isset($_POST["sub"])) {
$query= "UPDATE course_reg set grade=";
$values = $_POST['grade'];
$valuesArr = array();
foreach ($values as $a){
$valuesArr[] = mysql_real_escape_string($a);
//$valuesArr[] = $a;
}
$query .= "'".implode(',', $valuesArr)."'";
$grade_upp=mysqli_query($con,$query);
}
?>

注意:停止使用mysqli_query而不是prepared statement。这不安全。

答案 1 :(得分:-1)

你到底想做什么?你的桌子结构是什么?您正在更新(=更改)数据库中的行。这是你想要的吗? Mysql更新查询不能用于将多个值设置到同一个字段中。从您的查询中,这就是您正在做的事情。并且没有更新的条件。所以你总是会更新所有行。

val sampleLine = """10.10.6.90 - - 15/Aug/2016:23:59:20 -0500 "GET /ecf8427e/b443dc7f/71f28176/174ef735/1dd4d421 HTTP/1.0" 200 - "-" "-" 7 "10.10.1.231, 10.10.6.90" -"""

顺便说一句,直接使用POST变量被认为是不安全的。看看准备好的陈述 - 如@FArzad所述