Insérer des données dans MySQL à l'aide de MySQLi et PDO
Après avoir créé la base de données et les tables, nous pouvons ajouter des données aux tables.
Voici quelques règles de grammaire :
Les instructions de requête SQL en PHP doivent utiliser des guillemets
Les valeurs de chaîne dans les requêtes SQL doivent être citées.
Les valeurs numériques ne nécessitent pas de guillemets
Les valeurs NULL ne nécessitent pas de guillemets
L'instruction INSERT INTO est généralement utilisée pour ajouter de nouveaux enregistrements à une table MySQL :
INSERT INTO nom_table (colonne1, colonne2, colonne3,...)VALUES (valeur1, valeur2, valeur3,...)
Pour en savoir plus sur SQL, consultez nos didacticiels SQL.
Dans les chapitres précédents nous avons créé la table « MyGuests » avec les champs suivants : « id », « firstname », « lastname », « email » et « reg_date ». Maintenant, commençons à remplir le tableau avec des données.
 | Remarque : Si la colonne est définie sur AUTO_INCREMENT (comme la colonne "id") ou TIMESTAMP (comme la colonne "reg_date"), nous n'avons pas besoin de spécifier la valeur dans l'instruction de requête SQL ; MySQL ajoutera automatiquement une valeur ; à la colonne. |
|---|
L'exemple suivant ajoute un nouvel enregistrement à la table « MyGuests » :
Exemple (MySQLi - Orienté Objet)
<?php $ servername = " localhost " ; $username = " username " ; $ password = " password " $ dbname = " myDB " ; $conn = nouveau mysqli ( $servername , $username , $password , $dbname ) // Détecter la connexion ; si ( $conn -> erreur_connexion ) { die ( " Échec de la connexion : " . $conn -> connect_error ) } ; $sql = " INSERT INTO MyGuests (prénom, nom, email)VALUES ('John', 'Doe', '[email protected]' ) " ; ( $conn -> requête ( $sql ) === VRAI ) { écho " Nouvel enregistrement inséré avec succès " } autre { écho " Erreur : " . " <br> " . $conn -> fermer ( ) ? > Exemple (MySQLi - Orienté procédure)
<?php $ servername = " localhost " ; $username = " username " ; $ password = " password " $ dbname = " myDB " ; $conn = mysqli_connect ( $servername , $username , $password , $dbname ) // Détecter la connexion ; si ( ! $conn ) { die ( " Échec de la connexion : " . mysqli_connect_error ( ) ) } ; $sql = " INSERT INTO MyGuests (prénom, nom, email)VALUES ('John', 'Doe', '[email protected]' ) " ; ( mysqli_query ( $conn , $sql ) ) { écho " Nouvel enregistrement inséré avec succès " } autre { écho " Erreur : " . " <br> " . mysqli_close ( $conn ) ? > Exemple (AOP)
<?php $ servername = " localhost " ; $ username = " username " ; $password = " password " $dbname = " myDBPDO " ; { $conn = nouveau PDO ( " mysql:host= $servername ;dbname= $dbname " , $ username , $password ) // Définir le mode d'erreur PDO pour lancer des exceptions ; $conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; $sql = " INSERT INTO MyGuests (prénom, nom, email) VALUES ('John', 'Doe', '[email protected]') " ; // Utilisez exec(), aucun résultat n'est renvoyé $conn - > exec ( $sql ) ; " Nouvel enregistrement inséré avec succès " } attraper ( PDOException $e ) { écho $ sql . " <br> " . $e -> getMessage ( ) ; $conn = nul ? >