Вот как я это сделал:
Сначала определите имена колонок, которые вы будете использовать, или оставьте поле пустым, и pdo предположит, что вы хотите использовать все столбцы таблицы - в этом случае вы «Мне нужно сообщить значения строк в том порядке, в каком они появляются в таблице.
$cols = 'name', 'middleName', 'eMail';
$table = 'people';
Теперь предположим, что у вас уже подготовлен двухмерный массив. Итерации и построение строки с вашими значениями строк:
foreach ( $people as $person ) {
if(! $rowVals ) {
$rows = '(' . "'$name'" . ',' . "'$middleName'" . ',' . "'$eMail'" . ')';
} else { $rowVals = '(' . "'$name'" . ',' . "'$middleName'" . ',' . "'$eMail'" . ')';
}
Теперь, что вы только что сделали, это проверить, были ли уже определены строки $, а если нет, создайте их и сохраните значения строк и необходимый синтаксис SQL, поэтому он будет действительным оператором. Обратите внимание, что строки должны входить в двойные кавычки и одинарные кавычки, поэтому они будут незамедлительно распознаны как таковые.
Все, что осталось сделать, это подготовить оператор и выполнить как таковой:
$stmt = $db->prepare ( "INSERT INTO $table $cols VALUES $rowVals" );
$stmt->execute ();
Протестировано до 2000 строк до сих пор, а время исполнения удручающее. Запустит еще несколько тестов и вернется сюда, если у меня есть что-то еще.
С уважением.