Come collegare PHP a MySQL

Per i principianti nello sviluppo di siti web, capire come utilizzare gli script PHP per connettersi a MySQL può essere molto vantaggioso. Questo ti consente di modificare, visualizzare o gestire le tabelle all’interno del database MySQL. In questo articolo, ti guideremo attraverso i metodi più semplici per raggiungere questo obiettivo. Cominciamo!

Creazione di un database MySQL (opzionale)

Questo passaggio è richiesto se non hai un database MySQL. Se sei un utente di Hostinger, puoi facilmente crearne uno nuovo tramite l’hPanel di Hostinger in pochi passaggi:

  1. Trova il menu Database MySQL sotto la sezione Database .
  2. Compila i campi necessari e clicca su Crea

Tieni presente, tuttavia, che questi sono database vuoti e dovrai inserire dati prima di poterli manipolare.

Importante! Annota le credenziali del database MySQL che hai appena creato per il prossimo passaggio. Non dimenticare di ricordare anche il nome utente del database e la password del nome utente!

Due modi in cui uno script PHP può connettersi a MySQL

Ci sono due metodi per connettersi a un database MySQL utilizzando PHP: MySQLi e PDO.

MySQLi significa MySQL migliorato. È un’estensione esclusiva di MySQL che aggiunge nuove funzionalità all’interfaccia di un database MySQL. MySQLi è sia procedurale che orientato agli oggetti, con il primo che è l’attributo ereditato dalla versione precedente di MySQL.

L’originale MySQL suddivide un compito in procedure lineari, passo dopo passo, il che lo rende difficile da modificare perché devi modificare il codice dall’inizio. Nel frattempo, MySQLi vede i dati come un insieme di oggetti intercambiabili con funzioni, permettendo agli utenti di aggiungere o rimuovere facilmente i dati.

PDO significa Data object PHP. A differenza di MySQLi, PDO è solo orientato agli oggetti e supporta un numero di diversi tipi di database che utilizzano PHP, come MySQL, MSSQL, Informix e PostgreSQL.

Importante! Le funzioni originali mysql_ sono obsolete e non dovrebbero essere utilizzate in quanto non sicure e non più mantenute o sviluppate.

Una delle caratteristiche più importanti che entrambi supportano è prepared statements, che accelera il tempo necessario per MySQL per eseguire la stessa query più volte. Viene utilizzato anche per prevenire attacchi di iniezione SQL quando si apportano modifiche al database o si inseriscono input forniti dall’utente in una query o dichiarazione del database.

Qualunque metodo tu utilizzi, avrai bisogno delle informazioni corrette per poterti connettere al database MySQL che hai creato. Questo è il momento in cui i dettagli del database MySQL che hai salvato in precedenza diventano utili.

Hai anche bisogno del corretto nome del server o hostname per la configurazione. Hostinger utilizza “localhost” come nome host del suo server MySQL. In generale, questo è il nome che vorrai usare se hai caricato il tuo script PHP sullo stesso server del database.

Al contrario, se stai utilizzando una connessione remota MySQL per connetterti a un database, dovrai utilizzare l’indirizzo IP del server MySQL. Per ulteriori dettagli, contatta il tuo fornitore di hosting affinché possa fornirti le informazioni corrette su cosa utilizzare come nome host.

Utilizzo di MySQLi per collegare uno script PHP a MySQL

Segui questi passaggi per utilizzare MySQLi per connettere uno script PHP a MySQL:

  1. Vai su Gestione file -> public_html.
  2. Crea un Nuovo file cliccando sull’icona dal menu laterale.
  3. Salva il file come databaseconnect.php. Puoi sostituire il nome con quello che preferisci, assicurati solo che utilizzi php come estensione.
  4. Fai doppio clic per aprire il file e copia-incolla le seguenti righe di codice al suo interno. Modifica i primi quattro valori sotto <?php con le credenziali che hai annotato in precedenza:
<?php

$servername = "localhost";

$database = "u123456789_DatabaseName";

$username = "u123456789_User";

$password = "MyStr0ngPa$!";

// Create connection

$conn = mysqli_connect($servername, $username, $password, $database);

// Check connection

if (!$conn) {

    die("Connection failed: " . mysqli_connect_error());

}

echo "Connected successfully";

mysqli_close($conn);

?>

Spiegazioni del codice MySQLi

Il metodo principale utilizzato in questo script è mysqli_connect(). Questa è una funzione interna di PHP per stabilire una nuova connessione a un server MySQL.

All’inizio del nostro codice, vediamo alcune dichiarazioni di variabili e valori assegnati a queste variabili. Di solito, ne abbiamo bisogno di quattro per stabilire una corretta connessione al database: $servername, $database, $username, e $password. Nel codice, impostiamo i dettagli del nostro database come valori per quelle variabili, in modo che possano essere passati alla funzione.

Se la connessione non ha successo, viene eseguita la funzione die(). Questo praticamente distrugge il nostro script e ci dà un messaggio di errore di connessione che abbiamo impostato. Per impostazione predefinita, l’errore di connessione MySQL dirà Connessione fallita seguito da un messaggio di errore esatto che descrive il problema.

D’altra parte, se la connessione a MySQL ha successo, il codice mostrerà Connessione riuscita invece.

L’ultima parte del codice è mysqli_close, che semplicemente chiuderà manualmente la connessione al database. Se non specificato, le connessioni MySQL si chiuderanno da sole una volta terminato lo script.

Utilizzo di PDO per connettere uno script PHP a MySQL

L’altro metodo per utilizzare lo script PHP per connettersi a MySQL è tramite PDO. Questo è simile al metodo precedente, ma con una leggera variazione:

  1. Nel public_html, crea un file chiamato pdoconfig.php e inserisci il seguente codice. Come sempre, non dimenticare di sostituire i valori segnaposto con le informazioni del tuo database. Salva e chiudi una volta terminato:
<?php

$host = "localhost";

$dbname = "u123456789_DatabaseName";

$username = "u123456789_User";

$password = "MyStr0ngPa$!";
  1. Crea un altro file chiamato databaseconnect.php nella stessa directory, ma con il seguente codice. Se hai nominato il file precedente in modo diverso, assicurati di cambiare il valore di require_once.
<?php

require_once 'pdoconfig.php';

try {

$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

echo "Connected to $dbname at $host successfully.";

} catch (PDOException $pe) {

die ("Could not connect to the database $dbname :" . $pe->getMessage());

}

Spiegazione del codice PDO

Una connessione al database PDO richiede di creare un nuovo oggetto PDO con un Nome della fonte dati (DSN), username e password.

Il DSN definisce il tipo di database, il nome del database e qualsiasi altra informazione relativa al database se necessario. Queste sono le variabili e i valori che abbiamo dichiarato all’interno del file dbconfig.php , citati una volta dalla riga require_once nel databaseconnect.php.

In quest’ultimo, troverai il codice try…catch.. . Ciò significa che lo script proverà a connettersi a MySQL utilizzando il codice fornito, ma se ci fosse un problema, verrà eseguito il codice nella sezione catch. Puoi utilizzare il blocco catch per visualizzare messaggi di errore di connessione o eseguire codice alternativo se il blocco try fallisce.

Se la connessione ha successo, verrà stampato il messaggio “Connesso a $dbname su $host con successo.” Tuttavia, se il tentativo fallisce, il codice di cattura mostrerà un semplice messaggio di errore e interromperà lo script.

A differenza di quando si utilizza MySQLi, dopo aver finito di utilizzare uno script PDO, non è necessario chiudere manualmente la connessione. Viene chiuso automaticamente quando l’oggetto PDO viene distrutto, o quando termina il tuo script.

Verifica della connettività e risoluzione degli errori comuni

Per verificare se la connessione è riuscita, accedi al tuo dominio in questo modo: tuodominio/databaseconnect.php. Se nomini il file PHP in modo diverso, assicurati di modificarlo di conseguenza.

Vedrai “Connesso con successo” o varianti di questo messaggio se tutto funziona senza problemi.

Ora, se la connessione non è stata effettuata con successo, vedrai qualcosa di diverso. I messaggi di errore appaiono leggermente diversi per MySQLi e PDO.

Errore di password errata

Questo errore si verifica se modifichiamo la password o qualsiasi credenziale nel codice PHP (ma non la cambiamo nel database effettivo).

Nel caso in cui vedi un messaggio “Accesso negato” o “Impossibile connettersi al database” accompagnato da “(utilizzando password: SÌ)” alla fine, la prima cosa da fare è controllare i dettagli del database. Potrebbe esserci un errore di battitura o una parte mancante.

Impossibile connettersi al server MySQL

Se ottieni “Impossibile connettersi al server MySQL su ‘server’ (110)” in MySQLi, significa che lo script non ha ricevuto una risposta da un server. Questo accade quando impostiamo “server” invece di “localhost” come  $servername, e questo nome non viene riconosciuto.

Il messaggio di errore in PDO apparirà come “Connessione fallita: SQLSTATE[Hy000] [2002]” seguito da ulteriori dettagli che indicano che l’host My SQL non è stato trovato. Ma il modo per risolvere il problema è lo stesso di sopra.

E naturalmente, è sempre importante ricordare una regola d’oro per risolvere un errore: controlla il registro degli errori del tuo sito.

Il registro può essere trovato nella stessa cartella in cui lo script è in esecuzione. Ad esempio, se stiamo eseguendo uno script in public_html, troveremo error_log nella stessa cartella.

Conclusioni

In questo tutorial, abbiamo appreso le conoscenze di base su come collegare PHP a MySQL utilizzando MySQLi e PHP Data Objects (PDO).

Speriamo che questa guida sia stata utile per coloro che stanno appena iniziando con lo sviluppo web. Dopotutto, connettersi a un database è il primo, più importante passo quando si lavora con script e configurazioni più avanzate.

Fateci sapere nei commenti qui sotto se riscontri problemi nel seguire questa guida.

Author
L'autore

Michela Z.

Michela si focalizza sul condividere le sue conoscenze di hosting e marketing digitale e sull'aiutare le aziende ad avere successo online, con un particolare interesse per la creazione di siti web e di e-commerce. Nel suo tempo libero le piace sedersi davanti un buon libro e ascoltare musica.