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:
- Le query SQL devono essere racchiuse fra virgolette;
- I valori stringa all'interno delle query devono essere racchiuse fra virgolette;
- I valori numerici non devono essere fra virgolette;
- La parola NULL non deve essere fra virgolette;
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.