我一直在使用PDO和下面的函数一次插入1000个块的多个记录。现在我正在使用一个使用mysqli的系统,我想知道是否可以稍微修改我的函数以使用mysqli,但是我注意到mysqli execute不接受数组作为参数。以下功能可与PDO完美结合:如何用mysqli一次插入多个记录类似于pdo
$sub_data = array_chunk($data, 1000);
for ($b = 0; $b < count($sub_data); $b++)
{
$insert_values = array();
for ($a = 0; $a < count($sub_data[$b]); $a++)
{
$insert_values = array_merge($insert_values, array_values($sub_data[$b][$a]));
$placeholder[] = '(' . implode(', ', array_fill(0, count($sub_data[$b][$a]), '?')) . ')';
}
$sql2 = "INSERT INTO $table_name (" . implode(",", array_keys($sub_data[$b][0])) . ") VALUES " . implode(',', $placeholder) . "";
$prepare = $db->prepare($sql2);
try
{
$prepare->execute($insert_values);
}
catch (mysqli_sql_exception $e)
{
echo "<pre>";
print_r($sub_data[$b]);
echo "</pre>";
echo $e->getMessage();
print_r($db->errorInfo());
}
unset($insert_values);
unset($placeholder);
}
谢谢!
'mysqli'不支持尽可能多的方法来为PDO绑定,所以你可能有更多的麻烦事情了。 – tadman 2014-10-09 17:47:23
可能有用:[15149157 /最好的方式插入许多值在mysqli](http://stackoverflow.com/questions/15149157/best-way-to-insert-many-values-in -mysqli) – 2014-10-09 19:40:38