Insérer en masse à l'aide de la classe modèle de CodeIgniter
L'insertion de grandes quantités de données dans une base de données peut prendre beaucoup de temps. Traditionnellement, une approche consiste à exécuter une série de commandes d'insertion individuelles, ce qui peut être inefficace et gourmand en ressources.
Pour optimiser ce processus, il est possible d'insérer plusieurs lignes à la fois à l'aide d'une seule requête. Dans CodeIgniter, cela peut être réalisé à l'aide de la classe Model.
Construction de la requête
La clé pour insérer plusieurs lignes avec une seule requête réside dans l'assemblage correct de l'instruction SQL. . Au lieu d'ajouter chaque valeur à une longue chaîne, vous pouvez utiliser les fonctions d'affectation de tableau et d'implosion.
$data = [ ['text' => 'foo', 'category_id' => 1], ['text' => 'bar', 'category_id' => 2], // ... ]; $sql = []; foreach ($data as $row) { $sql[] = '("' . mysql_real_escape_string($row['text']) . '", ' . $row['category_id'] . ')'; } $sql = implode(',', $sql);
Exécuter la requête
Une fois l'instruction SQL construite , vous pouvez l'exécuter à l'aide de la méthode de requête de la classe Model :
$this->db->query('INSERT INTO table (text, category_id) VALUES ' . $sql);
Avantages du Bulk Insérer
L'utilisation de techniques d'insertion groupée offre plusieurs avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!