我不能将ang字符串值传递给数组

时间:2018-10-24 01:05:31

标签: php arrays

我有这段代码,但是我无法传递具有字符串输入数据的数组变量 $ 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);
                    }
                   } ?>

1 个答案:

答案 0 :(得分:1)

请先阅读How do I create arrays in HTML formsprint debugging来检查$ _POST数据,以确保您知道数据的结构。

示例代码中还有两个问题:

  1. 过滤器输入和转义输出

    您必须转义输入数据以防止SQL注入攻击。 查看@zerkms评论的https://stackoverflow.com/a/60496/251311的答案

  2. 插入值必须采用正确的格式。

    例如,如果将tbl_grade.compoment定义为`varchar,则必须用引号将值引起来,请检查以下示例。

    INSERT INTO `tbl_grade` ( `component` ) VALUES ("hello world");