从Ajax POST将数组保存到MySQL的正确方法

jee*_*ers 0 php mysql ajax foreach jquery

我在这里通过Ajax POST传递了一个数组:

Array ( 
[name_dependents] => 
    Array ( 
        [0] => asd 
        [1] => hfg 
    ) 
[age_dependents] => 
    Array ( 
        [0] => 6 
        [1] => 6 
    ) 
[dob_dependents] => 
    Array ( 
    [0] => 2010-07-25 
    [1] => 2010-07-02 
) 
[dataString] => firstname=a&lastname=a&username=a&mobile_number=09176229999&password=blah&birth_month=01&birth_day=1&birth_year=1937&email=a@gmail.com&sec_question_uuid=1a78e916f8a2affa1d1de00be7e41f91&sec_answer=a&civil_status=32899cec496b4b25c43c8c4444f24403-married&gender=male&command=signup 
)
Run Code Online (Sandbox Code Playgroud)

这是将它发送到php文件的ajax:

$.ajax({
        type: 'POST',
        url: 'functions.php',
        data: {name_dependents:name_dependent_array, age_dependents:age_dependent_array, dob_dependents:dob_dependent_array, dataString:dataString},
        success: function() {
            $("#message").html('success');
            window.setTimeout(function() {
                $(".alert").fadeTo(1500, 0).slideUp(500, function(){
                    $(this).remove(); 
                });
            }, 5000);
        }
      });
Run Code Online (Sandbox Code Playgroud)

我的问题是,我似乎无法使循环工作将它们插入数据库:

$i = 0;
foreach($_POST['name_dependents]'] as $name_dependent){
    echo $name_dependent = $name_dependent."<br />";
    echo $age_dependent = $_POST['age_dependent'][$i]."<br />";
    echo $dob_dependent = $_POST['dob_dependent'][$i]."<br />--";
    //$AddQuery ="INSERT INTO db (name,training,amount)VALUES ($name,$training,$amount)";
    //mysql_query($AddQuery, $con);
    $i++;
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

解决了:

谢谢你们敏锐的目光.我现在能够回应正确的数据:

    $i = 0;
foreach($_POST['name_dependents'] as $name_dependent){
    echo $name_dependent = $name_dependent."<br />";
    echo $age_dependent = $_POST['age_dependents'][$i]."<br />";
    echo $dob_dependent = $_POST['dob_dependents'][$i]."<br />--";
    $i++;
}
Run Code Online (Sandbox Code Playgroud)

请忽略上面评论的查询.请放心,我会遵循您关于我的代码易受SQL注入攻击的建议.下面我的工作查询的一个例子(现在从SQL注入安全吗?):

mysqli_query($conn, 'INSERT INTO pmp_user (uuid, first_name, last_name, address, email, gender, password, date_registered) VALUES ( "'.md5(uniqid()).'", "'.$firstname.'", "'.$lastname.'", "'.$address.'", "'.$email.'", "'.$gender.'", "'.$password.'", "'.$date.'" )');
Run Code Online (Sandbox Code Playgroud)

jon*_*nju 5

我认为这个问题就在这一行

foreach($_POST['[name_dependents]'] as $name_dependent){
Run Code Online (Sandbox Code Playgroud)

你有一个额外的[].试试这个

foreach($_POST['name_dependents'] as $name_dependent){
Run Code Online (Sandbox Code Playgroud)