Il logo del sito

Traduzione da MySQL Insert Data

Appunti sull'interfaccia di PHP con MySQL

PHP 5 MySQL Database

§ 5. MySQL Insert Data

Dopo aver creato il database ed una tabella, possiamo cominciare ad aggiungere dati.

Ecco alcune regole di sintassi da seguire:

Per aggiungere record in una tabelle occorre usare lo statement INSERT TO la cui sintassi è la seguente:


INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...)

Per saperne di più su SQL, visita il w3Schools SQL tutorial

Nella precedente sezione abbiamo creato tre tabelle vuote MyGuest_1, MyGuest_2, e MyGuest_3, con cinque colonne: "id", "firsname" "lastname", "email", e "reg_date". Ora inseriamo dati nelle tabelle secondo i tre metodi disponibili.

Nota: Se una colonna ha l'attributo AUTO_INCREMENT, come la colonna "id", o TIMESTAMP, come la colonna "data_reg", non è necessario specificare il valore da inserire nella query di tipo INSERT TO. MySQL lo farà automaticamente.

§ 5.1 Inserire dati nelle tabelle MySQL usando MySQLi e PDO

Gli esempi che seguono mostrano come creare la tabella MyGuest secondo le tre modalità di connessione possibili.

§ 5.1.1 Inserire dati 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('Giorgio', 'Neri', 'giorgioBlack@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->query($sql)==TRUE){
      echo "<p class=phpoutput > Nuovo record creato con successo </p>";
   } else {
      echo "<p class=phpoutput > 
      Errore nella creazione del nuovo record: "
         . $conn->error . "</p>";
   }
   $conn->close();
?>             

Connessione mysqli object-oriented riuscita.

Nuovo record creato con successo

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.

§ 5.1.2 Inserire dati 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('Roberto', 'Rossi', 'robertoRed@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_query($conn, $sql)) {
         echo "<p class=phpoutput > Nuovo record creato con successo</p>";
      } else {
         echo "<p class=phpoutput > 
              Errore nella creazione del nuovo record: "
         . mysqli_error($conn) . "</p>";
      }
      mysqli_close($conn);
   ?>             

Connessione mysqli procedural riuscita

Errore nella creazione del nuovo record: 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.

§ 5.1.2 Inserire dati in MyGuest_2 con PDO

   <?php
      $servername = "127.0.0.1";
      $username = "mioUserName";
      $password = "miaPassword";
      $conn = null;
      $dbname = "myDB";
      $sql = "INSERT INTO MyGuest_3(
         firstname, lastname, email)
         VALUES('Filippo', 'Verdi', 'filippoGreen@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>";
         // use exec() because no results are returned
         $conn->exec($sql);
         echo "<p class=phpoutput > Tabella myGuest_3 creata con successo</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

Record creato con successo

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.