Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 准备语句以插入多行_Php_Database_Mysqli - Fatal编程技术网

Php 准备语句以插入多行

Php 准备语句以插入多行,php,database,mysqli,Php,Database,Mysqli,我试图使用一个prepare语句插入多行数据,但它无法将数据插入数据库。下面是我的代码: $count = count(array_filter($arr)); // Define a statement to insert working experience if (!($stmt = $dbc->prepare("INSERT INTO work_experience_records (record_id, organization_name, location, employmen

我试图使用一个prepare语句插入多行数据,但它无法将数据插入数据库。下面是我的代码:

$count = count(array_filter($arr));
// Define a statement to insert working experience
if (!($stmt = $dbc->prepare("INSERT INTO work_experience_records (record_id, organization_name, location, employment_date, responsibility) VALUES (?, ?, ?, ?, ?)"))) {
     echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
if($count > 0){

    for($i=0; $i < $count; $i++){
            $item = explode(' | ', $arr[$i]);
            //echo $item[0] . $item[1] .$item[2] . $item[3];
            $stmt->bind_param('issss', $next_id, $item[0], $item[1], $item[2], $item[3]);

            if (!$stmt->execute()) {
                echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
            }
        }
    /*if(!$result = $dbc->query($query_2)){

    }*/

}
$count=count(数组过滤器($arr));
//定义一条语句以插入工作经验
if(!($stmt=$dbc->prepare(“插入工作经验记录(记录id、组织名称、地点、雇用日期、责任))值(?,,,,,?))){
echo“准备失败:(“$mysqli->errno.”“$mysqli->error;
}
如果($count>0){
对于($i=0;$i<$count;$i++){
$item=explode(“|”,$arr[$i]);
//回显$item[0]。$item[1]。$item[2]。$item[3];
$stmt->bind_param('isss',$next_id,$item[0],$item[1],$item[2],$item[3]);
如果(!$stmt->execute()){
echo“执行失败:(“$stmt->errno.”“$stmt->error;
}
}
/*if(!$result=$dbc->query($query_2)){
}*/
}
我的代码是否遗漏了其他内容或有任何错误?请帮帮我。
提前感谢。

您必须在execute方法()中绑定参数:


我已经解决了我的问题。插入失败的原因是行错误

$result->free();
在prepare和execute语句之前。删除该行后,数据成功插入


感谢所有回复和帮助。

打印出整个语句,然后直接在数据库中检查哪些不起作用(没有php依赖项),这总是一个好主意。你有什么错误吗?我应该如何打印整个报表?这就是你的意思吗$stmt->execute(绑定参数('isss',$next\u id,$item[0],$item[1],$item[2],$item[3])@Therenho:我不知道结构$arr,但我认为它应该是这样的:$stmt->execute(数组($next_id,$item[0],$item[1],$item[2],$item[3]);
$result->free();