J'ai un tableau avec plus de 30000 entrées qui doivent aller dans une table MySQL.php + mysql: insérer un tableau php dans mysql
Quelle est la meilleure pratique? D'ici? Supposons que [0], [1] et [2] dans la base de données soient 'title', 'type' et 'client'
Est-ce que cela ajoute des noms de clé correspondant aux noms des colonnes dans la table et appelle som "magic " fonction? Ou construire la requête manuellement ...
Array
(
[0] => Array
(
[0] => 2140395946
[1] => 1SAP
[2] => 0041451463
)
[1] => Array
(
[0] => 2140411607
[1] => 2SAP
[2] => 0041411940
)
[2] => Array
(
[0] => 2140706194
[1] => 4SAP
[2] => 0041411943
)
etc. etc.
MISE À JOUR - en fonction des réponses
Merci pour les réponses.
La solution serait normalement de créer manuellement la chaîne SQL et toutes les lignes peuvent être insérés comme un:
INSERT INTO `tx_opengate_table` (`machine` ,`customer` ,`type`)
VALUES
('m123', 'dfkj45', 'A'),
('m137', 'kfkj49', 'A'), "repeat this line for each entry in the array"
... ... ...
('m654321', '34dgf456', 'C4') "end with out comma, or remove last comma"
;
spécial pour TYPO3
J'arrive de le faire dans le CMS TYPO3 et juste venu à travers une nouvelle fonction ajoutée il n'y a pas si longtemps:
//Insert new rows
$table = 'tx_opengate_stuff';
$fields = array('machine','type','customer');
$lines = "array as given above"
$GLOBALS['TYPO3_DB']->exec_INSERTmultipleRows($table,$fields,$lines);
Super. C'est ça.Je suppose que cela devrait juste être $ item [0], $ item [1] et $ item [2] et pas le tableau $ arr qui devrait aller dans la chaîne de requête $. – Tillebeck
Oui, désolé. Je l'ai corrigé. –
Il est toujours nécessaire, comme vous l'avez déclaré dans le commentaire récent :) –