准备语句以插入多行

I am trying to insert multiple rows of data by using one prepare statement but it unable to insert data into database. Below is my code:

$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)){

    }*/

}

Did I miss something else or any wrong with my code? Please help me. Thanks in advance.

I have solved my problem. The insert unsuccessful was due to the line

$result->free();

before the prepare and execute statements. After removing that line, the data successfully inserted.

Thanks to all replies and help anyway.

You have to bind parameters in execute method instead (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);
}