Insérer plusieurs lignes avec pg-promise
L'insertion de plusieurs lignes dans une table de base de données avec une seule requête peut améliorer considérablement les performances, en particulier lorsque traiter de grands ensembles de données. Pg-promise, un puissant générateur de requêtes SQL et une bibliothèque d'exécution, fournit un moyen pratique et efficace d'effectuer des insertions multi-lignes.
Insertion multi-lignes avec assistants
Pour insérer plusieurs lignes avec pg-promise, vous pouvez utiliser l'espace de noms helpers. Cet espace de noms fournit un ensemble de fonctions utilitaires qui facilitent la construction de requêtes SQL paramétrables.
<code class="javascript">const pgp = require('pg-promise')({ capSQL: true // capitalize all generated SQL }); const db = pgp(/*connection*/); const {ColumnSet, insert} = pgp.helpers; // our set of columns, to be created only once (statically), and then reused, // to let it cache up its formatting templates for high performance: const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'}); // data input values: const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}]; // generating a multi-row insert query: const query = insert(values, cs); //=> INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2') // executing the query: await db.none(query);</code>
La classe ColumnSet définit les colonnes à insérer, tandis que la fonction d'insertion prend les valeurs de données à insérer et génère la requête SQL. Cette approche est très performante et permet à la fois des insertions sur une seule ligne et sur plusieurs lignes.
Protection contre les injections SQL
En ce qui concerne la question secondaire de la protection contre les injections SQL, il est Il est essentiel de comprendre que l’utilisation d’espaces réservés (1 $, 2 $, etc.) ne garantit pas en soi la protection. Il est essentiel de combiner des espaces réservés avec une validation et une désinfection des entrées appropriées pour empêcher l'exécution de commandes SQL malveillantes. Pg-promise utilise cette approche par défaut, offrant un moyen sécurisé d'insérer des données dans votre base de données.
Considérations et extras supplémentaires
En conclusion, l'espace de noms des assistants de pg-promise facilite l'exécution d'insertions sur plusieurs lignes, protégeant ainsi contre l'injection SQL tout en optimisant les performances.
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!