Salta ai contenuti

Operazioni CRUD

CRUD indica le quattro operazioni principali sui dati:

  • Create: creare
  • Read: leggere
  • Update: aggiornare
  • Delete: cancellare

In un sito reale le usi continuamente: aggiungere un prodotto, mostrare una lista, modificare un profilo, eliminare un commento.

<?php
$stmt = $pdo->prepare(
"INSERT INTO prodotti (nome, prezzo) VALUES (:nome, :prezzo)"
);
$stmt->execute([
"nome" => "Quaderno",
"prezzo" => 3.50,
]);
<?php
$stmt = $pdo->query("SELECT id, nome, prezzo FROM prodotti");
$prodotti = $stmt->fetchAll();
foreach ($prodotti as $prodotto) {
echo $prodotto["nome"] . "\n";
}

fetchAll legge tutte le righe trovate.

<?php
$stmt = $pdo->prepare(
"UPDATE prodotti SET prezzo = :prezzo WHERE id = :id"
);
$stmt->execute([
"prezzo" => 4.00,
"id" => 1,
]);

WHERE e fondamentale: senza, rischi di modificare tutte le righe.

<?php
$stmt = $pdo->prepare("DELETE FROM prodotti WHERE id = :id");
$stmt->execute(["id" => 1]);

Anche qui WHERE decide cosa cancellare.

Di solito un form raccoglie dati, PHP li valida, poi una query preparata li salva o li modifica.

Ordine consigliato:

  1. ricevi i dati
  2. controlli che siano validi
  3. prepari la query
  4. esegui la query
  5. mostri un messaggio chiaro

Una pagina che mostra prodotti potrebbe essere cosi:

<?php
$stmt = $pdo->query("SELECT id, nome, prezzo FROM prodotti ORDER BY nome");
$prodotti = $stmt->fetchAll();
?>
<ul>
<?php foreach ($prodotti as $prodotto): ?>
<li>
<?= htmlspecialchars($prodotto["nome"], ENT_QUOTES, 'UTF-8') ?>
- <?= $prodotto["prezzo"] ?> euro
</li>
<?php endforeach; ?>
</ul>

PHP legge i dati. HTML li mostra. htmlspecialchars protegge il testo prima di inserirlo nella pagina.

La cancellazione e l’operazione piu delicata. In un’interfaccia reale conviene chiedere conferma e usare POST, non un semplice link GET.

<form method="post" action="elimina.php">
<input type="hidden" name="id" value="1">
<button type="submit">Elimina</button>
</form>

CRUD non e una funzione speciale di PHP. E un modo per ricordare le azioni fondamentali sui dati. In PHP le realizzi con form, validazione, PDO e query preparate.