dal 2015 - visita n. 645
Query insert
Query insert

 

Query insert

Per inserire i dati in una tabella MySQL è necessario utilizzare il comando SQL: INSERT INTO. Questa operazione, come al solito, è possibile effettuarla sia a linea di comando sia con uno script PHP, a seconda delle necessità.

Sintassi:

Ecco la sintassi generale SQL per il comando INSERT INTO:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

Per inserire dati di tipo stringa è necessario racchiuderli tra doppi o singoli apici, per esempio: "value".


Insert a linea di comando

Adesso useremo il comando INSERT INTO per inserire dei dati nella tabella dbprova_tbl.

Esempio:

Creazione di tre records nella tabella dbprova_tbl:

# mysql -u root -p password;

Dopo aver inserito la password di root:

mysql> use DBPROVA;
Database changed
mysql> INSERT INTO dbprova_tbl 
     ->(prova_title, prova_author, submission_date)
     ->VALUES
     ->("Learn PHP", "J. Tizio", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO dbprova_tbl
     ->(prova_title, prova_author, submission_date)
     ->VALUES
     ->("Learn MySQL", "A. Caio", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO dbprova_tbl
     ->(prova_title, prova_author, submission_date)
     ->VALUES
     ->("JAVA Tutorial", "S. Pinco", '2015-02-18');
Query OK, 1 row affected (0.01 sec)

NOTE:
1 - Tutti i segni di freccia (->) non fanno parte del comando SQL, essi stanno ad indicare una nuova linea e vengono creati automaticamente dal prompt di MySQL quando si preme il tasto Invio senza che ci sia il punto e virgola alla fine della riga.
2 - Nell'esempio precedente non abbiamo assegnato prova_id perché al momento della creazione della tabella avevamo dato l'opzione AUTO_INCREMENT per questo campo. Pertanto è MySQL che si occupa di inserire automaticamente questi ID.
3 - NOW() è una funzione di MySQL che restituisce la data e l'ora correnti.


Insert con script PHP

Per inserire i dati in una tabella MySQL è possibile utilizzare lo stesso comando INSERT INTO nella funzione PHP mysql_query().

Esempio:

In questo esempio preleveremo tre dati utente e li inseriremo nella tabella MySQL:

<html>
<head>
<title>Inserimento di un record in una tabella</title>
</head>
<body>
<?php
if(isset($_POST['add'])) {
  $dbhost = 'localhost:3036';
  $dbuser = 'root';
  $dbpass = 'rootpassword';
  $conn = mysql_connect($dbhost, $dbuser, $dbpass);
  if(! $conn ) {
    die('Connessione impossibile. Errore: ' . mysql_error());
  }

  if(! get_magic_quotes_gpc() ) {
    $prova_title = addslashes ($_POST['prova_title']);
    $prova_author = addslashes ($_POST['prova_author']);
  }
  else {
    $prova_title = $_POST['prova_title'];
    $prova_author = $_POST['prova_author'];
  }
  $submission_date = $_POST['submission_date'];

  $sql = "INSERT INTO dbprova_tbl ".
         "(prova_title,prova_author, submission_date) ".
         "VALUES ".
         "('$prova_title','$prova_author','$submission_date')";
  mysql_select_db('DBPROVA');
  $retval = mysql_query( $sql, $conn );
  if(! $retval ) {
    die('Inserimento impossibile. Errore: ' . mysql_error());
  }
  echo "Inserimento riuscito\n";
  mysql_close($conn);
}
else {
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="600" border="0" cellspacing="1" cellpadding="2">
<tr><td width="250">Field Title</td>
    <td><input name="prova_title" type="text" id="prova_title"></td></tr>
<tr><td width="250">Field Author</td>
    <td><input name="prova_author" type="text" id="prova_author"></td></tr>
<tr><td width="250">Submission Date [ yyyy-mm-dd ]</td>
    <td><input name="submission_date" type="text" id="submission_date"></td></tr>
<tr><td width="250"> </td>
    <td> </td></tr>
<tr><td width="250"> </td>
    <td><input name="add" type="submit" id="add" value="Add Record"></td></tr>
</table>
</form>
<?php
}
?>
</body>
</html>

Quando si inseriscono dei dati è consigliabile utilizzare la funzione get_magic_quotes_gpc() per verificare se nella configurazione attuale risulta impostata la rilevazione di magic_quotes. Se questa funzione restituisce false occorre utilizzare la funzione addslashes() per aggiungere le barre prima delle virgolette.
E' possibile aggiungere anche altri tipi di validazione per controllare se i dati inseriti sono corretti, in modo da prendere i provvedimenti opportuni.

















Introduzione
Installazione
Amministrazione
MySQL e PHP
Gestione database
Tipi di dati
Gestione tabelle
Query insert
Query select
Query update e delete
Clausola where
Clausola like e regexp
Clausola order by
Clausola join
Il valore NULL
Le transazioni
Il comando ALTER
Gli indici
Tabelle temporanee e cloni
Info sul database
Generazione di sequenze
Gestione dei duplicati
Iniezione di codice SQL
Export / Import



L'amore non è della mente, non è della rete dei pensieri, non può essere cercato, coltivato. Nutrito; è lì quando la mente è silenziosa e il cuore è vuoto dalle creazioni della mente.
Jiddu Krishnamurti (1895-1986)

Valid CSS!
pagina generata in 0.001 secondi