Un rivestimento per analizzare un file CSV in un array utilizzando str_getcsv.
$csv = array_map('str_getcsv', file('qryWebsite.csv'));
per costruire una query di database che consente di importare tutti i valori nella base di dati in una sola volta:
$query =
"INSERT INTO tbl_name (a,b,c) VALUES " .
implode(',', array_map(function($params) use (&$values) {
$values = array_merge((array) $values, $params);
return '(' . implode(',', array_fill(0, count($params), '?')) . ')';
}, $csv));
Questo creerà una dichiarazione preparata con i segnaposto punto interrogativo, come:
INSERT INTO tbl_name (a,b,c) VALUES (?,?,?),(?,?,?),(?,?,?),(?,?,?)
e la variabile $values
sarà una matrice monodimensionale che contiene i valori per la dichiarazione. Un avvertimento qui è che il file CSV dovrebbe contenere meno di 65.536 voci (numero massimo di segnaposto).
Pssst: http://php.net/splfileobject – hakre
pssst quasi un anno dopo ho trovato il tuo [blog] (http://hakre.wordpress.com/2010/07/25/parsing-csv-files-with-php -spl-style /) – HenryW