X
X
X
X

Come PHP si Connette con i Database MySQL

Pagina inizialeArticoliDesarrollo WebCome PHP si Connette con i Database...

Creare un Database MySQL (Opzionale):

Questo procedimento è essenziale nelle situazioni in cui non si disponga ancora di un database MySQL creato. Nel caso degli utenti che utilizzano i servizi di Hostinger, è possibile generare un nuovo database attraverso l'hPanel di Hostinger, seguendo un processo di esecuzione estremamente semplice:

Trovare la sezione "Database MySQL" nella sezione designata per i database. Compilare tutti i campi richiesti e procedere selezionando l'opzione "Crea".

È importante tenere presente che creando un nuovo database, questo sarà vuoto e sarà necessario fornire tutti i dati necessari prima di poter effettuare qualsiasi tipo di manipolazione su di essi.

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

Esistono due approcci per stabilire una connessione tra PHP e un database MySQL: MySQLi e PDO.

MySQLi è l'abbreviazione di MySQL Improved. Si tratta di un'estensione esclusiva di MySQL che introduce nuove funzionalità all'interfaccia di un database MySQL. MySQLi opera sia in un paradigma procedurale che in uno orientato agli oggetti, con quest'ultimo attributo ereditato da versioni precedenti di MySQL.

L'approccio originale di MySQL affronta le attività attraverso procedure lineari e sequenziali, il che può complicare la modifica in quanto le modifiche devono essere apportate al codice dall'inizio. In contrasto, MySQLi concepisce i dati come un insieme di oggetti interscambiabili con funzioni associate, il che consente agli utenti di incorporare o eliminare dati con facilità.

D'altra parte, PDO sono le sigle di PHP Data Object (Oggetto Dati in PHP). A differenza di MySQLi, PDO si concentra esclusivamente sul paradigma orientato agli oggetti ed è compatibile con vari tipi di database utilizzabili con PHP, come MySQL, MSSQL, Informix e PostgreSQL.

Importante! Le funzioni originali di mysql_ sono obsolete e non dovrebbero essere utilizzate poiché non sono sicure e non sono più supportate o sviluppate.

Una delle funzionalità più importanti offerte da entrambe le alternative è l'implementazione delle istruzioni preparate. Queste accelerano significativamente il tempo necessario a MySQL per eseguire query identiche più volte. Inoltre, il loro utilizzo è fondamentale per mitigare i rischi degli attacchi di iniezione SQL quando si effettuano modifiche nel database.

Indipendentemente dal metodo scelto, è fondamentale disporre delle informazioni corrette per effettuare la connessione al database MySQL creato in precedenza. In questo punto, i dettagli relativi al database MySQL precedentemente memorizzati diventano molto utili.

Allo stesso modo, è necessario avere il nome del server o host corretto per la configurazione. Nel caso di Hostinger, viene utilizzato "localhost" come nome host per il server MySQL. In generale, questa è la denominazione che conviene utilizzare se lo script PHP è ospitato sullo stesso server del database.

Al contrario, se si desidera stabilire una connessione al database da una posizione remota, come potrebbe essere il caso del proprio computer personale, sarà necessario utilizzare l'indirizzo IP del server MySQL. Per ottenere ulteriori dettagli in proposito, si consiglia di contattare il provider di hosting in modo che possano fornire le informazioni pertinenti per determinare quale nome host utilizzare.

Utilizzo di MySQLi per connettere uno script PHP a MySQL:

Seguire queste istruzioni per utilizzare MySQLi e connettere uno script PHP a MySQL:

Accedere al Gestore File e navigare nella cartella public_html. Creare un nuovo file cliccando sull'icona del menu superiore. Salvare il file con il nome "databaseconnect.php". Se si preferisce, è possibile scegliere un altro nome, ma assicurarsi che l'estensione sia ".php". Doppio clic per aprire il file e quindi copiare e incollare il codice seguente. Assicurarsi di modificare i primi quattro valori sotto "<?php" con le credenziali annotante precedentemente Spiegazione del codice MySQLi:

L'elemento centrale di questo script è il metodo mysqli_connect(). Questa funzione interna di PHP serve a stabilire una nuova connessione con un server MySQL.

All'inizio del codice, si notano alcune dichiarazioni di variabili e i relativi valori. Di solito, sono necessarie quattro variabili per stabilire una connessione adeguata: $servername, $database, $username e $password. In questo codice, i dettagli specifici del database vengono assegnati come valori a queste variabili, in modo che possano essere passate alla funzione.

Se la connessione non riesce, verrà eseguita la funzione die(). Questo essenzialmente termina lo script e visualizza il messaggio di errore di connessione impostato. Per impostazione predefinita, il messaggio di errore di connessione di MySQL conterrà "Connection failed", seguito da una descrizione precisa del problema riscontrato.

Al contrario, se la connessione con MySQL avviene con successo, il codice stamperà "Connected successfully" (Connessione stabilita con successo).

L'ultima sezione del codice, mysqli_close, fornisce un modo per chiudere manualmente la connessione al database. In assenza di questa specifica, le connessioni MySQL si chiuderanno automaticamente una volta che lo script avrà completato la sua esecuzione.

Utilizzo di PDO per connettere uno script PHP a MySQL:

L'altro approccio che puoi utilizzare per connettere uno script PHP a MySQL è attraverso PDO. Anche se condivide somiglianze con il metodo precedente, presenta una leggera variazione:

Nella cartella public_html, creare un file chiamato "pdoconfig.php" e inserire il seguente codice. Come al solito, assicurarsi di sostituire i valori del segnaposto con le informazioni del proprio database. Concludere il processo salvando e chiudendo il file una volta completato. Creare un nuovo file chiamato "databaseconnect.php" nella stessa directory e inserire il seguente codice. Nel caso in cui si abbia dato un nome diverso al file precedente, assicurarsi di modificare il valore di "require_once" di conseguenza. Spiegazione del codice utilizzando PDO:

Per stabilire una connessione al database tramite PDO, è necessario creare una nuova istanza della classe PDO, fornendo un Nome di Origine Dati (DSN), nome utente e password.

Il DSN definisce il tipo di database, il nome del database e altre informazioni pertinenti. Questi sono i valori che abbiamo dichiarato nel file "dbconfig.php" e che vengono richiamati successivamente attraverso la linea "require_once" nel file "databaseconnect.php".

All'interno di "databaseconnect.php", è presente una struttura "try...catch". Questo implica che lo script cercherà (try) di stabilire una connessione con MySQL utilizzando il codice fornito nel blocco "try". In caso di problemi, verrà attivato il codice contenuto nel blocco "catch". Il blocco "catch" può essere utilizzato per mostrare messaggi di errore di connessione o eseguire un insieme alternativo di istruzioni nel caso in cui la sezione "try" fallisca.

Se la connessione avviene con successo, verrà stampato il messaggio "Connected to $dbname at $host successfully" (Connessione a $dbname su $host stabilita con successo). Tuttavia, se il tentativo di connessione non ha successo, il blocco "catch" visualizzerà un messaggio di errore conciso e terminerà l'esecuzione dello script.

Verifica della connettività e risoluzione degli errori comuni:

Per confermare se la connessione è stata stabilita con successo, accedere al proprio dominio nel seguente modo: "tudominio/databaseconnect.php". Se si è assegnato un nome diverso al file PHP, assicurarsi di regolare l'indirizzo menzionato in base a tale nome.

Se tutto funziona correttamente, verrà visualizzato il messaggio "Connected successfully" o varianti di questo messaggio.

Tuttavia, se la connessione non riesce, si otterranno risultati diversi. Gli errori sono leggermente diversi tra MySQLi e PDO.

Errore di Password Errata: Questo errore si verifica quando si modificano la password o altre credenziali nel codice PHP, ma non si aggiornano tali modifiche nel database reale.

Se viene visualizzato un messaggio come "Access denied" o "Could not connect to database", accompagnato da "(using password: YES)" alla fine, la prima cosa da fare è verificare i dettagli del database. Potrebbe esserci un errore di battitura o mancanza di informazioni.

Incapacità di Connettersi al Server MySQL: Se viene visualizzato il messaggio "Can’t connect to MySQL server on 'server' (110)" in MySQLi, indica che lo script non ha ricevuto una risposta dal server. Ciò accade quando abbiamo configurato "server" anziché "localhost" come $servername e il nome non è riconosciuto.

Nel caso di PDO, il messaggio di errore sarà "Connection failed: SQLSTATE[Hy000] [2002]", seguito da ulteriori dettagli che indicano la mancata riconoscibilità dell'host MySQL. Tuttavia, la soluzione a questo problema è simile a quella precedente.

Naturalmente, è sempre consigliabile ricordare una regola fondamentale per risolvere gli errori: controllare il registro degli errori del proprio sito.

Questo registro si trova nella stessa cartella in cui lo script viene eseguito. Ad esempio, se lo script viene eseguito nella cartella public_html, troverai il registro "error_log" nella stessa cartella.


Top