Position actuelle: Accueil> Derniers articles> Guide complet et conseils pratiques pour les opérations d'insertion de bases de données PHP

Guide complet et conseils pratiques pour les opérations d'insertion de bases de données PHP

M66 2025-11-05

Connaissances de base des opérations d'ajout de base de données PHP

Notions de base

L'instruction INSERT est utilisée pour insérer de nouveaux enregistrements dans une table de base de données. L'insertion des données est terminée en spécifiant les noms et les valeurs des colonnes.

  • Le nom de la colonne spécifie la colonne cible pour l'insertion des données
  • la valeur représente les données à insérer

grammaire

 $sql = "INSERT INTO nom_table (colonne1, colonne2, ...) VALEURS (valeur1, valeur2, ...)";

Paramétrage des requêtes

L’utilisation de requêtes paramétrées peut empêcher efficacement les attaques par injection SQL. Évitez de fusionner les entrées de l'utilisateur directement dans la chaîne de requête en liant les paramètres à des espaces réservés.

 $stmt = $conn->prepare("INSERT INTO nom_table (colonne1, colonne2) VALEURS (?, ?)");
$stmt->bind_param("ss", $value1, $value2);

Insertion par lots

Utilisez l'instruction INSERT...SELECT pour insérer en bloc des données d'une autre table.

 $sql = "INSERT INTO table1 (colonne1, colonne2) SELECT colonne1, colonne2 FROM table2";

ID de retour après insertion

L'ID généré automatiquement peut être obtenu via la fonction LAST_INSERT_ID() ou $conn->insert_id pour faciliter les opérations ultérieures.

 $id = $conn->insert_id ;

traitement des transactions

Les transactions garantissent qu'un ensemble d'opérations de base de données réussissent toutes ou échouent toutes à être annulées. Les fonctions couramment utilisées incluent begin_transaction(), commit() et rollback().

Gestion des erreurs

Utilisez la fonction mysqli_error() pour capturer et gérer les erreurs qui se produisent lors des opérations de base de données.

 si ($stmt->execute()) {
  //Exécution réussie} else {
  echo "Erreur : " . $stmt->erreur ;
}