Introduzione
Per accedere e aggiungere contenuti a un MySQL database, devi prima stabilire una connessione tra il database e un PHP copione.
In questo tutorial, scopri come utilizzare MySQLi Extension e PHP Data Objects per connetterti a MySQL . Le tradizionali funzioni mysql_ legacy sono obsolete e non le tratteremo in questa guida.
Prerequisiti
- privilegi speciali CREATE
- Un database MySQL
- Un'estensione MySQLi o PDO
2 modi per connettersi al database MySQL utilizzando PHP
Esistono due modi popolari per connettersi a un database MySQL utilizzando PHP:
- Con l'estensione MySQLi di PHP
- Con PHP Data Objects (PDO)
La guida include anche spiegazioni per le credenziali utilizzate negli script PHP e potenziali errori che potresti riscontrare utilizzando MySQLi e PDO.
Opzione 1:connessione a MySQL con l'estensione MySQL Improved
MySQL è un'estensione che supporta solo i database MySQL. Consente l'accesso a nuove funzionalità presenti nei sistemi MySQL (versione 4.1. e successive), fornendo un'interfaccia sia orientata agli oggetti che procedurale. Supporta istruzioni preparate lato server, ma non istruzioni preparate lato client.
L'estensione MySQLi è inclusa in PHP versione 5 e successive.
Lo script PHP per la connessione a un database MySQL utilizzando l'approccio procedurale MySQLi è il seguente:
<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo “Connected successfully”;
mysqli_close($conn);
?>
Spiegazione delle credenziali
La prima parte dello script è costituita da quattro variabili (nome server, database, nome utente e password) e dai rispettivi valori. Questi valori dovrebbero corrispondere ai dettagli della tua connessione.
La prossima è la funzione PHP principale mysqli_connect() . Stabilisce una connessione con il database specificato.
Di seguito è riportata una "istruzione if .” È la parte del codice che mostra se la connessione è stata stabilita. Quando la connessione non riesce, viene visualizzato il messaggio Connessione non riuscita . I morire la funzione stampa il messaggio e quindi esce fuori dal copione.
Se la connessione riesce, viene visualizzato "Connesso correttamente ."
Al termine dello script, si chiude anche la connessione con il database. Se desideri terminare il codice manualmente, utilizza mysqli_close funzione.
Opzione 2:connessione a MySQL con PDO
Oggetti dati PHP (PDO) è un'estensione che funge da interfaccia per la connessione ai database. A differenza di MySQLi, può eseguire qualsiasi funzione di database e non è limitato a MySQL. Consente flessibilità tra i database ed è più generale di MySQL. PDO supporta istruzioni preparate lato server e client.
Il codice PHP per la connessione a un database MySQL tramite l'estensione PDO è:
<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
$charset = "utf8mb4";
try {
$dsn = "mysql:host=$servername;dbname=$database;charset=$charset";
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo “Connection Okay”;
return $pdo
}
catch (PDOException $e)
{
echo “Connection failed: ”. $e->getMessage();
}
?>
Sintassi delle credenziali
Innanzitutto, abbiamo cinque variabili (nome del server, database, nome utente, password e set di caratteri) e i loro valori. Questi valori dovrebbero corrispondere ai dettagli della tua connessione.
Il nome del server sarà localhost . Se sei connesso a un server online, digita il nome del server di quel server.
La variabile insieme di caratteri indica al database in cui codificare riceverà e invierà dati. Lo standard consigliato è utf8mb4 .
Cerca di catturare i blocchi
Il grande vantaggio della DOP è che ha un'eccezione classe per occuparsi di eventuali problemi nelle query del database. Risolve questi problemi incorporando prova e cattura blocchi.
Se si verifica un problema durante il tentativo di connessione, interrompe l'esecuzione e tenta di catturare e risolvi il problema. Cattura i blocchi possono essere impostati per mostrare messaggi di errore oppure esegui un codice alternativo .
Il primo parametro in try and catch il blocco è DSN, che sta per nome dell'origine dati(base) . È fondamentale in quanto definisce il tipo e il nome del database, insieme a qualsiasi altra informazione aggiuntiva.
In questo esempio, stiamo usando un database MySQL. Tuttavia, PDO supporta vari tipi di database. Se hai un database diverso, sostituisci quella parte della sintassi (mysql ) con il database che stai utilizzando.
Il prossimo è il DOP variabile. Questa variabile stabilirà una connessione al database. Ha tre parametri:
- Il nome dell'origine dati (dsn)
- Il nome utente per il tuo database
- La password per il tuo database
Di seguito è riportato il metodo setAttribute aggiungendo due parametri al PDO:
- DOP::ATTR_ERRMODE
- DOP::ERRMODE_EXCEPTION
Questo metodo indica al PDO di eseguire un'eccezione nel caso in cui una query non vada a buon fine.
Aggiungi l'eco "Connessione OK .” per confermare che è stata stabilita una connessione.
Ritorno la variabile PDO per connettersi al database.
Dopo aver restituito la variabile PDO, definire la PDOException nella cattura bloccare chiedendogli di visualizzare un messaggio quando la connessione fallisce.
Potenziali errori con MySQLi e PDO
Password errata
La password nel codice PHP deve corrispondere a quella nel database. Se i due non corrispondono, non è possibile stabilire una connessione con il database. Riceverai un messaggio di errore che dice la connessione non è riuscita .
Possibili soluzioni :
- Controlla i dettagli del database per assicurarti che la password sia corretta.
- Assicurati che ci sia un utente assegnato al database.
Impossibile connettersi al server MySQL
PHP potrebbe non essere in grado di connettersi al server MySQL se il nome del server non viene riconosciuto. Assicurati che il nome del server è impostato su localhost .
In caso di altri errori, assicurati di consultare il error_log file per aiutare quando si tenta di risolvere eventuali problemi. Il file si trova nella stessa cartella in cui è in esecuzione lo script.