PHP e MySQL

PHP e MySQL

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

struttura delle cartelle sul web server
struttura delle cartelle sul web server

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 nella SELECT 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

Pubblicato da Carlo Contardi

Carlo Contardi, docente di informatica e sviluppatore Full Stack, condivide la sua passione per la programmazione e l’informatica attraverso il suo blog Space Coding. Offre preziosi consigli e soluzioni pratiche a chi vuole imparare a programmare o migliorare le proprie abilità. 🚀👨‍💻

Translate »