2017-08-15 1 views
-3
$dbh = new PDO($dsn, $username, $password); 

$query = 'INSERT INTO `table1` (`id`, `name`) VALUES (?, ?)'; 
$values = [ 
    [1, 'Mary'], 
    [2, 'Peter'], 
    [3, 'Mike'] 
]; 

$stmt = $dbh->prepare($query); 
$stmt->execute($values); 

Je sais que les codes ci-dessus provoqueront des erreurs. Mais si je veux insérer plusieurs dossiers avec des espaces réservés, comment puis-je faire?

+6

Copie possible de [PDO Prepared Inserts plusieurs lignes dans une seule requête] (https://stackoverflow.com/questions/1176352/pdo-prepared-inserts-multiple-rows-in-single-query) – CBroe

+0

OK, merci beaucoup! Il semble qu'il n'y ait pas de moyens "élégants" pour y parvenir. – Benson

+1

Il n'y en a pas vraiment besoin ... avec les instructions préparées, l'instruction et les données sont envoyées à la base de données indépendamment les unes des autres. Vous pouvez donc lier des paramètres et ensuite exécuter l'instruction dans une boucle; Cela ne ralentit pas les choses comme l'envoi d'une déclaration "traditionnelle" pour les insertions de lignes individuelles plusieurs fois. – CBroe

Répondre

0

@CBroe a fourni de bonnes réponses à cette question. S'il vous plaît se référer aux commentaires ci-dessus, et surtout se référer au lien qu'il a posté, qui a des discussions plus détaillées au sein de celui-ci.