在foreach循环php中运行准备好的语句

时间:2019-02-22 18:34:20

标签: php foreach

我正在尝试在php中的foreach循环内运行SQL查询;它不起作用。

这是我在ajax请求中发送的php文件。 注意:代码在没有准备好的语句的情况下仍然有效。

<?php

require_once('..\inc\backend-func.php');
//require_once('..\inc\connection.php');

if( $_SERVER['REQUEST_METHOD']  == 'POST'){ 
    $host = 'localhost';
    $username = 'root';
    $password = '';
    $dbname = 'wcsh_database';
    $conn = new mysqli($host, $username, $password, $dbname);

    /* Check connection */
    if ($conn->connect_error) {
        die("Connection to database failed: " . $conn->connect_error);
    }
    $i = 0;
    foreach($_POST as $k ){
        $id = $_POST['id'][$i];
        $confDdate = $_POST['cdate'][$i];
        $validUntil = $_POST['valid'][$i];
        $serialNo = $_POST['serial'][$i];
        $query = $conn->prepare('INSERT INTO `conference_certification` (id,conference_date,member_validity,serialNo) values (?,?,?,?)');
        $query->bind_param('ssss',$id,$confDate,$validUntil,$serialNo);
        $query->execute();
        if ($query == false) {
            die('prepare() failed: ' . htmlspecialchars($conn->error));
        }
        $i++;
    }
}
?>

1 个答案:

答案 0 :(得分:-1)

1。请确保数据类型为file_get_contents('php:// input')或$ _POST; 2.如果正文发布数据为数组,则迭代应为$ _POST [$ i] ['id']而不是$ _POST ['id'] [$ i]