Я пытаюсь объединить транзакцию SQLite и подготовленный оператор, чтобы получить максимальную скорость вставки для тысяч записей. Однако все вставленные строки пусты.
Распечатка переменных перед вставкой показывает, что они имеют правильные данные и ошибок нет.
$db->beginTransaction(); $insert_stmt = $db->prepare("INSERT INTO `table` VALUES (:id, :value2, :value3, :value4)"); $insert_stmt->bindValue(":id", $id); $insert_stmt->bindValue(":value2", $value2); $insert_stmt->bindValue(":value3", $value3); $insert_stmt->bindValue(":value4", $value4); foreach ($records as $record) { $id = $record["id"]; $value2 = $record["value2"]; $value3 = $record["value3"]; $value4 = $record["value4"]; $insert_stmt->execute(); print_r($db->errorInfo()); // print errors } $db->commit();