W3docs

prepare

In questo articolo discutiamo la funzione mysqli_prepare() in PHP, usata per preparare un'istruzione SQL per l'esecuzione.

PHP mysqli_prepare() Function

In questo articolo discuteremo la funzione mysqli_prepare() in PHP, che viene utilizzata per preparare un'istruzione SQL per l'esecuzione.

Introduzione alla funzione mysqli_prepare()

La funzione mysqli_prepare() è una funzione integrata in PHP utilizzata per preparare un'istruzione SQL per l'esecuzione. La funzione mysqli_prepare() crea un oggetto prepared statement e restituisce un riferimento a tale oggetto. I prepared statement sono uno strumento potente per lavorare con i database, poiché consentono di scrivere query SQL sicure e parametrizzate.

Come usare la funzione mysqli_prepare()

Usare la funzione mysqli_prepare() è semplice. Ecco un esempio:

Come usare la funzione mysqli_prepare()?

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$query = "SELECT * FROM users WHERE id=?";
$stmt = $mysqli->prepare($query);

if (!$stmt) {
    echo "Prepare failed: " . $mysqli->error;
    exit();
}

$id = 1;
$stmt->bind_param("i", $id); // "i" specifies that the variable is an integer

if (!$stmt->execute()) {
    echo "Execute failed: " . $stmt->error;
} else {
    // Note: get_result() requires the mysqlnd driver.
    // For other drivers, use mysqli_stmt_fetch() instead.
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        // process the row
    }
}
$stmt->close();
$mysqli->close();
?>

In questo esempio, creiamo prima un nuovo oggetto MySQLi usando la classe mysqli. Verifichiamo poi se la connessione ha avuto successo tramite la proprietà connect_errno. Se la connessione è riuscita, definiamo una query SQL che seleziona tutte le righe dalla tabella users dove la colonna id corrisponde a un valore segnaposto. Chiamiamo quindi $mysqli->prepare() con la stringa di query per creare un oggetto prepared statement e verifichiamo che la preparazione sia riuscita. Impostiamo poi la variabile $id a 1 prima di associarla al segnaposto tramite $stmt->bind_param(). Il carattere "i" nella stringa di tipo specifica che la variabile associata è un intero. Gli altri tipi supportati includono "s" per string, "d" per double e "b" per BLOB. Eseguiamo quindi il prepared statement con $stmt->execute(), aggiungendo la gestione degli errori nel caso in cui l'esecuzione fallisca. Recuperiamo poi il set di risultati con $stmt->get_result() e iteriamo tra le righe usando $result->fetch_assoc(). Infine, chiudiamo lo statement e la connessione usando il metodo close().

Conclusione

In conclusione, la funzione mysqli_prepare() è uno strumento potente per lavorare con i database in PHP. Comprendendo come utilizzare questa funzione, è possibile scrivere query SQL sicure e parametrizzate che resistono agli attacchi di SQL injection.

Esercitazione

Pratica
Cosa è vero riguardo ai prepared statement in PHP?
Cosa è vero riguardo ai prepared statement in PHP?
Was this page helpful?