准备语句以插入多行

时间:2013-12-18 12:11:17

标签: 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, 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)){

    }*/

}

我的代码是否遗漏了其他内容或错误?请帮我。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

$stmt = $dbh->prepare("INSERT INTO work_experience_records (record_id, organization_name, location, employment_date, responsibility) VALUES (?, ?, ?, ?, ?)");

foreach($data as $row)
{
    $stmt->execute($row);
}

答案 1 :(得分:0)

我已经解决了我的问题。插入不成功是由于行

$result->free();

在准备和执行语句之前。删除该行后,数据已成功插入。

感谢所有的回复和帮助。