Il logo del sito

Appunti sull'interfaccia di PHP con MySQL

PHP MySQL Database

§ 7. MySQL Insert Multiple

In questa sezione vediamo come inserire più record nelle tabelle.

§ 7.1 Inserire più record nelle tabelle MySQL usando MySQLi e PDO

Gli esempi che seguono sono simili a quelli della sezione precedente con la differenza che quì si aggiungono tre record consecutivi.

§ 7.1.1 Inserire più record in MyGuest_1 con MySQLi object-oriented

<?php
   $servername = "127.0.0.1";
   $username = "mioUserName";
   $password = "miaPassword";
   $dbname = "myDB";
   $sql = "INSERT INTO MyGuest_1(
      firstname, lastname, email)
      VALUES('Antonio', 'Esposito', 'antonioEsposito@pip.com');";
   $sql .= "INSERT INTO MyGuest_1(
      firstname, lastname, email)
      VALUES('Salvatore', 'Soria', 'salvatoreSoria@pip.com');";
   $sql .= "INSERT INTO MyGuest_1(
      firstname, lastname, email)
      VALUES('Leopoldo', 'Burzo', 'leopoldoBurzo@pip.com')";     
   // Create connection 
   $conn = new mysqli($servername, $username, 
      $password, $dbname);
   // Check connection
   if ($conn->connect_error){
      die("Connection failed: " . $conn-> connect_error);
   }
   echo "<p class=phpoutput> Connessione mysqli object-oriented riuscita. </p>;
   // create new record
   if ($conn->multi_query($sql)==TRUE){
      echo "<p class=phpoutput > Nuovi records creati con successo </p>";
      $last_id = $conn->insert_id;
      echo "<p class=phpoutput > Last inserted ID is: " . $last_id . "</p>";      
   } else {
      echo "<p class=phpoutput > 
      Errore nella creazione dei nuovi records: "
         . $conn->error . "</p>";
   }
   $conn->close();
?>             

Connessione mysqli object-oriented riuscita.

Nuovi records creati con successo

Last inserted ID is: 6978

Last inserted ID is: 6978

La tabella MyGuest_1 l'ho inserita nel mio unico database disponile. Naturalmente nel codice php che ? stato eseguito ho sostituito "mioUserName", "miaPassword", e "myDB" con i valori propri del mio database.

§ 7.1.2 Inserire più record in MyGuest_2 con MySQLi procedural

<?php 
   $servername = "127.0.0.1";
   $username = "mioUserName";
   $password = "miaPassword";
   $dbname = "myDB";
   $sql = "INSERT INTO MyGuest_2(
      firstname, lastname, email)
      VALUES('Antonio', 'Esposito', 'antonioEsposito@pip.com');";
   $sql .= "INSERT INTO MyGuest_2(
      firstname, lastname, email)
      VALUES('Salvatore', 'Soria', 'salvatoreSoria@pip.com');";
   $sql .= "INSERT INTO MyGuest_2(
      firstname, lastname, email)
      VALUES('Leopoldo', 'Burzo', 'leopoldoBurzo@pip.com')";     
   // Create connection 
   $conn = new mysqli($servername, $username, $password, $dbname);
   // Check connection
   if (!$conn){
      die("Connection failed: " . mysqli_connect_error);
   }
   echo "<p class=phpoutput> Connessione mysqli procedural riuscita. </p>;
   // Create new record
   if (mysqli_multi_query($conn, $sql)) {
      echo "<p class=phpoutput > Nuovi records creati con successo</p>";
      $last_id = mysqli_insert_id($conn);
      echo "<p class=phpoutput > Last inserted ID is: " . $last_id . "</p>";      
   } else {
      echo "<p class=phpoutput > 
      Errore nella creazione dei nuovi records: "
      mysqli_error($conn) . "</p>";
   }
   mysqli_close($conn);
?>             

Connessione mysqli procedural riuscita

Errore nella creazione dei nuovi records: Table 'ClaMinDB.MyGuest_2' doesn't exist

La tabella MyGuest_2 l'ho inserita nel mio unico database disponile. Naturalmente nel codice php che ? stato eseguito ho sostituito "mioUserName", "miaPassword", e "myDB" con i valori propri del mio database.

§ 7.1.3 Inserire più record in MyGuest_3 con PDO

   <?php
      $servername = "127.0.0.1";
      $username = "mioUserName";
      $password = "miaPassword";
      $conn = null;
      $dbname = "myDB";
      $sql1 = "INSERT INTO MyGuest_3(
         firstname, lastname, email)
         VALUES('Antonio', 'Esposito', 'antonioEsposito@pip.com')";
      $sql2 = "INSERT INTO MyGuest_3(
         firstname, lastname, email)
         VALUES('Salvatore', 'Soria', 'salvatoreSoria@pip.com')";
      $sql3 = "INSERT INTO MyGuest_3(
         firstname, lastname, email)
         VALUES('Leopoldo', 'Burzo', 'leopoldoBurzo@pip.com')";     
      try{
         $conn = new PDO("mysql:host=$servername; dbname=$dbname",
                 $username, $password);
         $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
         echo "<p class=phpoutput> Connessione pdo riuscita. </p>";
         // Inizio la transazione
         $conn->beginTransaction();
         // use exec() because no results are returned
         $conn->exec($sql1);
         $conn->exec($sql2);
         $conn->exec($sql3);
         $last_id = $conn->lastInsertId();
        // Eseguo la transazione
         $conn->commit();
         echo "<p class=phpoutput > Nuovi records creati con successo</p>";
         echo "<p class=phpoutput > Last inserted ID is: " . $last_id . "</p>";      
         }
      catch(PDOException $e){
         echo "<p class=phpoutput >". $sql. "</p>";
         echo "<p class=phpoutput >". $e->getMessage(). "</p>";
      }
      if ($conn != null){
         $conn = null;
      } 
   ?>                       

Connessione pdo riuscita

Nuovi records inseriti con successo

Last inserted ID is: 5

La tabella MyGuest_3 l'ho inserita nel mio unico database disponile. Naturalmente nel codice php che ? stato eseguito ho sostituito "mioUserName", "miaPassword", e "myDB" con i valori propri del mio database.