PDO: accesso a MySQL con PHP

Introduzione

PDO: accesso a MySQL con PHP -> PDO, acronimo di PHP Data Object, è un’estensione di PHP che permette di accedere a diversi database tramite un unico livello di astrazione. Questa estensione è stata introdotta a partire dalla versione 5.1 del linguaggio con lo scopo di unificare le API di accesso ai database.

PDO è un’opzione molto versatile e potente, che offre una serie di vantaggi rispetto alle precedenti librerie di accesso ai database di PHP, come MySQLi e MySQL functions.

Vantaggi di PDO

Tra i vantaggi di PDO troviamo:

  • Un’unica interfaccia di programmazione: PDO fornisce un’unica interfaccia di programmazione per accedere a tutti i database supportati, eliminando la necessità di imparare una nuova API per ogni database.
  • Supporto per diversi database: PDO supporta una vasta gamma di database, tra cui MySQL, PostgreSQL, Oracle, Microsoft SQL Server e altri.
  • Sicurezza: PDO offre un’elevata sicurezza, grazie al supporto per le prepared statements.
  • Efficienza: PDO è un’estensione efficiente, che può migliorare le prestazioni delle applicazioni PHP.

Installazione di PDO

PDO è incluso nella distribuzione standard di PHP, quindi non è necessario installarlo separatamente.

Connessione a un database MySQL con PDO

Per connettersi a un database MySQL con PDO, è necessario creare un oggetto PDO e specificare il nome del database, l’host, l’username e la password.

$dsn = 'mysql:host=localhost;dbname=my_database;charset=utf8';
$username = 'my_username';
$password = 'my_password';

$db = new PDO($dsn, $username, $password);

Esecuzione di query SQL con PDO

Per eseguire una query SQL con PDO, è necessario utilizzare il metodo query().

$sql = 'SELECT * FROM users';

$results = $db->query($sql);

Il metodo query() restituisce un oggetto PDOStatement, che rappresenta l’esecuzione della query.

Elaborazione dei risultati di una query con PDO

Per elaborare i risultati di una query, è possibile utilizzare i metodi fetch(), fetchAll() e fetchColumn().

Il metodo fetch() restituisce un record della query come un array associativo o numerico.

while ($row = $results->fetch()) {
  echo $row['name'] . ' ' . $row['surname'];
}

fetchAll() restituisce tutti i record della query come un array di array associativi o numerici.

$users = $results->fetchAll();

foreach ($users as $user) {
  echo $user['name'] . ' ' . $user['surname'];
}

Il metodo fetchColumn() restituisce una colonna specifica di tutti i record della query.

$names = $results->fetchColumn('name');

foreach ($names as $name) {
  echo $name;
}

Prepared statements con PDO

I prepared statements sono una tecnica che consente di migliorare la sicurezza e le prestazioni delle query SQL.

I prepared statements funzionano preparando una query SQL con i valori dei parametri, quindi eseguendo la query una sola volta per tutti i valori dei parametri.

Per utilizzare i prepared statements con PDO, è necessario utilizzare il metodo prepare().

$sql = 'SELECT * FROM users WHERE name = :name';

$stmt = $db->prepare($sql);

Quindi, è necessario associare i parametri della query ai valori effettivi.

$name = 'John Doe';

$stmt->bindParam(':name', $name);

Infine, è possibile eseguire la query.

$stmt->execute();

Esempio di applicazione con PDO

$stmt->execute();
<!DOCTYPE html>
<html lang="it">
<head>
  <meta charset="UTF-8">
  <title>Esempio di applicazione con PDO</title>
</head>
<body>

<h1>Esempio di applicazione con PDO</h1>

<h2>Connessione al database</h2>

<?php

// Configurazione del database
$dsn = 'mysql:host=localhost;dbname=my_database;charset=utf8';
$username = 'my_username';
$password = 'my_password';

// Creazione della connessione
$db = new PDO($dsn, $username, $password);

?>

<h2>Esecuzione di una query</h2>

<?php

// Query SQL
$sql = 'SELECT * FROM users';

// Esecuzione della query
$results = $db->query($sql);

?>

<h2>Elaborazione dei risultati</h2>

<?php

// Ciclo sui risultati
while ($row = $results->fetch()) {

  // Stampa dei dati
  echo $row['name'] . ' ' . $row['surname'] . '<br>';

}

?>

</body>
</html>

Link utili

Lezioni su PHP

Lezioni su MySQL

PHP: The Right Way

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 »