PHP è un linguaggio di scripting open source di uso generale, ampiamente utilizzato per creare pagine Web dinamiche e interattive. PHP può accedere a una vasta gamma di sistemi di gestione di database relazionali come MYSQL, SQLite , E PostgreSQL . IL PHP5.1 versione offriva una nuova libreria di astrazione della connessione al database, che è Oggetti dati PHP (DOP).
Cos'è la DOP?
DOP si riferisce Oggetto dati PHP , che è un'estensione PHP che definisce un'interfaccia leggera e coerente per l'accesso a un database in PHP. Si tratta di un insieme di estensioni PHP che forniscono una classe PDO centrale e un driver specifico per il database. Ciascun driver di database può esporre funzionalità specifiche del database come una normale funzione di estensione che implementa l'interfaccia PDO.
Nota: non possiamo eseguire alcun tipo di funzione del database utilizzando l'estensione PDO stessa. Per accedere a un server di database, dobbiamo utilizzare un driver PDO specifico del database.
PDO si concentra principalmente sull'astrazione dell'accesso ai dati piuttosto che sull'astrazione del database. Fornisce livello di astrazione dell'accesso ai dati , il che significa che, indipendentemente dal database che stiamo utilizzando, dobbiamo utilizzare le stesse funzioni fornite da quel database per eseguire query e recuperare dati. PDO non fornisce l'astrazione dei dati, poiché non riscrive l'SQL né emula le funzionalità mancanti.
Vantaggio della DOP
PDO offre vari modi per lavorare con gli oggetti e recupera istruzioni preparate che rendono il lavoro molto più semplice. È uno strumento di accesso al database in PHP attraverso il quale consentiamo un accesso uniforme a diversi database.
PDO consente il passaggio relativamente fluido tra diversi database e piattaforme, cosa che può essere eseguita facilmente modificando la stringa di connessione. Non supporta sintassi specifiche del database.
mediocre
Ci sono alcuni vantaggi della DOP come segue:
carattere in stringa
L'estensione PDO può accedere a qualsiasi database scritto per il driver PDO. Sono disponibili diversi driver PDO da utilizzare per FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , E PostgreSQL database, tra molti altri.
I driver non sono disponibili automaticamente in tutti i sistemi, quindi dobbiamo trovare i driver disponibili e aggiungerne altri quando ne abbiamo bisogno.
Sono disponibili diverse sintassi per stabilire la connessione al database. Queste sintassi dipendono da database specifici. Durante l'utilizzo di PDO, le operazioni devono essere racchiuse in blocchi try/catch e utilizzare la tecnica delle eccezioni.
Di solito, è necessario creare solo una singola connessione e queste connessioni vengono chiuse programmando il database in modo che venga impostato come nullo.
PDO consente di utilizzare eccezioni per la gestione degli errori. Per produrre un'eccezione, è possibile forzare il PDO in un attributo della modalità errore pertinente.
Esistono tre modalità di errore, ovvero Silenzioso (predefinito), Avvertimento , E Eccezione . Avvertimento ed Eccezione sono più utili nella programmazione DRY.
PDO riduce l'operazione di inserimento e aggiornamento del database comunemente utilizzata in un processo in due fasi, ad es.
Prepara >> [Bind] >> Esegui.
Attraverso questo metodo, possiamo sfruttare appieno le dichiarazioni preparate di PDO, che proteggono da attacchi dannosi tramite SQL injection.
Le istruzioni preparate sono istruzioni SQL precompilate che possono essere eseguite più volte inviando questi dati al server. Questi dati, utilizzati all'interno del segnaposto, sono automaticamente protetti dall'attacco SQL injection.
Vantaggi dell'utilizzo della DOP
PDO è il driver del database nativo. Ci sono alcuni vantaggi derivanti dall'utilizzo di PDO che sono riportati di seguito:
Classi DOP
Esistono tre classi PDO, riportate di seguito:
Database supportati da PDO
- MySQL
- PostgreSQL
- Oracolo
- Uccello di fuoco
- Microsoft SQL Server
- Sybase
- Informix
- IBM
- TDS gratuito
- SQLite
- Cubride
- 4D
Confronto tra PDO e MySQLi
Per accedere al database utilizzando PHP, abbiamo principalmente due opzioni: MySQLi E DOP (Oggetto dati PHP). MySQLi è nativo per PHP e fornisce prestazioni più veloci, mentre la maggior parte degli sviluppatori esperti preferisce lavorare con PDO poiché supporta un'ampia varietà di driver di database. Esistono alcune differenze tra PDO e MySQLi elencate di seguito in base alle loro caratteristiche.
Caratteristiche | DOP | MySQLi |
---|---|---|
Supporto DB | 12 conducenti diversi | Solo MySQL |
Connessione | Facile | Facile |
API | APRIRE | OOP + Procedura |
Prestazione | Veloce | Veloce |
Parametro denominato | SÌ | NO |
Mappatura degli oggetti | SÌ | SÌ |
Procedura memorizzata | SÌ | SÌ |
Dichiarazioni preparate lato client | SÌ | NO |
Sicurezza | Più sicuro di MySQLi. | Sicuro ma non più della DOP. |
Quale dovrebbe essere preferito tra PDO o MySQLi?
Sia PDO che MySQLi hanno i loro vantaggi:
- Come abbiamo visto in precedenza, PDO funziona su 12 diversi sistemi di database, mentre MySQL può funzionare solo con il database MySQL. Quindi, se vogliamo trasferire il nostro progetto su un altro database, PDO lo rende semplice. In MySQLi, dobbiamo riscrivere l'intero codice.
- PDO e MySQLi sono entrambi orientati agli oggetti, ma MySQLi offre anche API procedurali. Entrambi supportano le dichiarazioni preparate. Le dichiarazioni preparate sono importanti per la sicurezza delle applicazioni Web, poiché proteggono dall'iniezione SQL.
Requisiti
Non sono necessarie librerie esterne per creare questa estensione.
elenca Java
Processo di installazione
Passo 1: Scarica l'ultimo server XAMPP da qui https://www.apachefriends.org/download.html per diverse piattaforme come Windows, Linux e MacOS.
Nota: qui discuteremo il processo di installazione solo per il sistema operativo Windows.
Passo 2: Installa il server XAMPP sul tuo sistema seguendo questi passaggi.
Passaggio 3: Seleziona i componenti che desideri installare e clicca sul pulsante Avanti.
Passaggio 4: Crea la nuova cartella con il nome xampp nella posizione in cui desideri installare XAMPP.
Passaggio 5: Fare clic su Avanti qui e andare avanti. L'installazione del server XAMPP inizierà da qui.
Passaggio 6: XAMPP è installato correttamente. Fare clic sul pulsante Fine.
Passaggio 7: Seleziona la Lingua preferita.
Passaggio 8: Esegui il server Apache e MySQL da qui (come da screenshot fornito).
Passaggio 9: Ora apri php.ini da C:/xampp/php/php.ini (dove hai installato XAMPP) e decommenta l'estensione 'php_pdo_mysql.dll' E 'php_pdo.dll' (se stai lavorando con il database MySQL), o 'php_pdo_oci.dll' (se stai lavorando con il database Oracle). Ora inizia a lavorare con il database. Nella versione superiore di PHP 5.1 è già impostato.
come eseguire uno script su Linux
Lavorare con DOP
Per prima cosa dobbiamo creare un database, quindi crea un database con il nome myDB da qui.
Connessione al database
Per interagire con il database è sempre necessaria una connessione al database. Pertanto, dobbiamo conoscere l'identificatore per accedere al database, ovvero la posizione del database, il nome del database, il nome utente e la password.
Ora crea il programma di connessione al database utilizzando PDO in qualsiasi editor di testo come notepad o notepad++ e salvalo con il nome coonection.php. Eseguilo sul server XAMPP utilizzando localhost/80.
file system di Linux
Esempio
getMessage(); } ?>
Produzione
Eseguilo sul server utilizzando il seguente URL localhost/Xampp/pdoesempio/connection.php/ o dove hai salvato il tuo programma.
Gestione dell'errore di connessione
Se si verifica un errore di connessione, verrà generato un oggetto PDOException. Possiamo intercettare l'eccezione se vogliamo gestire la condizione di errore, oppure possiamo anche lasciarla al gestore globale delle eccezioni che può essere impostato da set_exception_handler() funzione.
Esempio
In questo esempio, dbUser(user-id) è sbagliato, quindi genererà un'eccezione, come possiamo vedere nell'output.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?>
Chiusura della connessione al database
getMessage(); } // this command close the connection. $dbConn = null; ?>
Produzione