Inviare dati a MySql – PHP
SQL (Structured Query Language) è un linguaggio standardizzato per database, progettato per creare e modificare schemi di database, inserire, modificare e gestire dati memorizzati, interrogare i dati memorizzati, creare e gestire strumenti di controllo ed accesso ai dati.
Sintassi SQL relative ai comandi SQL:
Select
- SELECT “nome_di_colonna” FROM “nome_della_tabella”;
Insert Into
- INSERT INTO “nome_della_tabella” (“colonna_1”, “colonna_2”, …)
- VALUES (“valore_1”, “valore_2”, …);
Update
- UPDATE “nome_della_tabella”
- SET “colonna 1” = [nuovo valore]
- WHERE “condizionale”;
Delete From
- DELETE FROM “nome_della_tabella”
- WHERE “condizionale”;
Drop Table
- DROP TABLE “nome_della_tabella”;
Create Table
- CREATE TABLE “nome_della_tabella”
- (“colonna_1” “tipo_di_dati_per_la_colonna_1”,
- “colonna_2” “tipo_di_dati_per_la_colonna_2”, … );
Count
- SELECT COUNT(“nome_di_colonna”)
- FROM “nome_della_tabella”;
Ne esistono altri ma a noi per adesso interessa la sintassi per l’inserimento dei dati in una tabella una riga alla volta INSERT INTO “nome_della_tabella” (“colonna_1”, “colonna_2”, …) VALUES (“valore_1”, “valore_2”, …);
<?php $sql="INSERT INTO nome_tabella (colonna_1, colonna_2, ...) VALUES ("valore_1", "valore_2", ...)"; $result = @mysql_query($sql); if($result){ echo("Dati inviati"); } else{ echo("Inserimento non eseguito"); } ?>
Aggiungiamo la connessione a MySql.
<?php $DB_host = 'localhost'; $DB_user = 'nome_utente'; $DB_password = 'password'; $DB_name = 'prova'; $conn = mysql_connect($DB_host, $DB_user, $DB_password); if (!$conn) { die ('Non riesco a connettermi: ' . mysql_error()); } $db_selected = mysql_select_db($DB_name, $conn); if (!$db_selected) { die ("Errore nella selezione del database: " . mysql_error()); } echo 'connesso con successo'; $sql="INSERT INTO nome_tabella (colonna_1, colonna_2, ...) VALUES ("valore_1", "valore_2", ...)"; $result = mysql_query($sql); if($result){ echo("Dati inviati"); } else{ echo("Inserimento non eseguito"); } mysql_close($conn); ?>
Creiamo un form per l’invio dei dati.
<form method="post" name="form" action=""> Nome: <input type="text" name="nome"> Cognome: <input type="text" name="cognome"> <input type="submit" value="invia"> </form>
Codice completo
<?php //RECUPERO VARIABILI FORM $nome = $_POST["nome"]; $cognome = $_POST["cognome"]; //DATI DI ACCESSO AL DATABASE $DB_host = 'localhost'; $DB_user = 'admin'; $DB_password = 'admin'; $DB_name = 'prova'; //CONNESSIONE DATABASE $conn = @mysql_connect($DB_host, $DB_user, $DB_password); if (!$conn) { die ('Non riesco a connettermi: ' . mysql_error()); } //SELEZIONE DATABASE $db_selected = mysql_select_db($DB_name, $conn); if (!$db_selected) { die ("Errore nella selezione del database: " . mysql_error()); } echo 'connesso con successo'; //INVIO DATI DATABASE $sql="INSERT INTO dati (nome, cognome) VALUES ('".$nome."', '".$cognome."')"; $result = @mysql_query($sql); if($result){ echo("Dati inviati"); } else{ echo("Inserimento non eseguito"); } //CHIUDO CONNESSIONE mysql_close($conn); ?> <form method="post" name="form" action=""> nome: <input type="text" name="nome"> cognome: <input type="text" name="cognome"> <input type="submit" value="invia"> </form>
Si consiglia di separare il codice in 2 file separati la parte php e quella html.
Il recupero delle variabile del form potrebbe produrre un errore del tipo:
Notice: Undefined index: …
Per evitare questo verificare se il campo method è stato inizializzato con la funzione isset().
$nome = (isset($_POST[“nome”]));
Per far funzionare il tutto ovviamente abbiamo bisogno di creare un nuovo database dal nome “prova” , tabella “dati”, e tre campi nome, cognome e id.