我有这段代码,但是我无法传递具有字符串输入数据的数组变量 $ component 的值。我该怎么办?
<?php if(isset($_POST['submit_tbl_grade'])){
$id = isset($_POST['id']) ? $_POST['id'] : array();
$component = $_POST['component'];
$sub_component_number = $_POST['sub_component_number'];
$subject = $_POST['subject'];
$score = $_POST['score'];
for($i = 0 ; $i < count($id) ; $i++){
$record = "INSERT INTO tbl_grade(stud_id,subject_id,component,sub_component_number,component_value) VALUES ($id[$i],$subject[$i],$component[$i],$sub_component_number[$i],$score[$i])";
mysqli_query($db,$record);
}
} ?>
答案 0 :(得分:1)
请先阅读How do I create arrays in HTML forms和print debugging来检查$ _POST数据,以确保您知道数据的结构。
示例代码中还有两个问题:
过滤器输入和转义输出
您必须转义输入数据以防止SQL注入攻击。 查看@zerkms评论的https://stackoverflow.com/a/60496/251311的答案
插入值必须采用正确的格式。
例如,如果将tbl_grade.compoment
定义为`varchar,则必须用引号将值引起来,请检查以下示例。
INSERT INTO `tbl_grade` ( `component` ) VALUES ("hello world");