PHP e MySQL
- Connessione ad un database
- Inserimento di dati in una tabella
- Lettura dati da una tabella
- Link utili
Connessione PHP ad un database MySQL
Per accedere ai dati memorizzati all’interno di un database MySQL è necessario effettuare prima la connessione allo stesso, utilizzeremo l’estensione MySQLi (MySQL improved) . L’estensione supporta sia il paradigma di programmazione procedurale che quello orientato agli oggetti. Di seguito l’implementazione orientata agli oggetti
<?php
$hostname="localhost";
$username="root";
$password="root";
$database="news";
$port="8889";
// creo la connessione
$conn=new mysqli($hostname,$username,$password,$database,$port);
// controllo la connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
echo "Connessione ok";
?>
I parametri che passeremo al costruttore della classe mysqli dipendono dalla nostra configurazione.
$hostname
è l’indirizzo del server MySQL. Può essere il nome (in locale sarà “localhost”) o l’indirizzo IP.
$username
è il nome dell’utente a cui sono stati concessi i privilegi per eseguire i comandi SQL.
$password
è la password associata all’utente $username
.
$database
indica il nome del database con il quale vogliamo interagire.
$port
il numero della la porta per il servizio MySQL (di default è 3306 )
Nella repository puoi scaricare il dump del db per testare il codice di questa lezione
Folder structure sul server web
Inserimento di dati in una tabella MySQL
Form per inviare i dati allo script insert.php
<!DOCTYPE html>
<html>
<head>
<title>Article upload</title>
</head>
<body>
<form action="src/insert.php" method="post">
<input type="text" name="title" placeholder="TITOLO"/><br>
<textarea name="body" placeholder="Scrivi qui il tuo articolo"></textarea>
<input type="submit"/>
</form>
</body>
</html>
Script per inserire i dati nella tabella articles
<?php
require '../config/db_connect.php';
$title=$_POST['title'];
$body=$_POST['body'];
$query = "INSERT INTO articles (title, body)
VALUES ('$title', '$body')";
if ($conn->query($query) === TRUE) {
echo "Articolo aggiunto";
} else {
echo "Errore: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
L’istruzione INSERT INTO
permette di inserire i dati in una tabella del database
Lettura dati da una tabella
<?php
require '../config/db_connect.php';
$query = "SELECT title,body FROM articles";
$result = $conn->query($query);
echo "<table border='solid'>";
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>".$row["title"]. "</td>";
echo "<td>". $row["body"]. "</td>";
echo "</tr>";
}
} else {
echo "Non sono presenti articoli";
}
$conn->close();
?>
L’istruzione SELECT
di MySQL viene utilizzata per selezionare i dati da una o più tabelle del database.
- Iil metodo
query
esegue il codice SQL che abbiamo memorizzato nella stringa$query
e genera un oggetto result set - l’attributo
num_rows
contiene il numero di righe risultanti - il metodo
fetch_assoc()
restituisce un array associativo per ogni record della tabella. Le chiavi sono i nomi dei campi usati nellaSELECT
oppure gli alias nel caso di funzioni di aggregazione - infine è necessario chiudere la connessione con il metodo
close()
I risultati sono renderizzati in una semplice tabella HTML