2016-02-25 15 views
5

Ho progettato un sito Web prima di 5 anni utilizzando PHP MySQL e funziona perfettamente senza problemi. Ho sentito che MySQL è ufficialmente obsoleto a partire da PHP 5.5 ed è stato rimosso a partire da PHP 7. Inoltre, PHP offre tre API diverse per connettersi a MySQL (come MySQL, MySQLi e PDO). Il mio server web viene aggiornato frequentemente.Dovrei aggiornare il mio sito web a PHP MySQLi o PDO?

ho capito, devo passare a una nuova API come MySQLi o DOP per la sicurezza. Ora sono confuso se scegliere MySQLi o PDO. Inoltre, sono disponibili opzioni di compatibilità/migrazione per questo caso?

+0

Riguardo al fatto che scegliere MySQLi o PDO è principalmente basato sull'opinione pubblica, con ciò detto, credo che alcuni direbbero che PDO è il più sicuro dei due, ma non so se sia accurato o meno. Se vieni da MySQL, credo che MySQLi sarà più facile da afferrare. – Epodax

+0

Ti raccomando di non aggiornare la versione PHP né la versione MySQL. Se il sito funziona, fallo funzionare. l'aggiornamento della versione dovrebbe essere manuale e non automatico –

+1

Una guida su PDO, che direi la scelta più ovvia - https://phpdelusions.net/pdo – DTH

risposta

2

La risposta è abbastanza semplice.

Se, come maggior parte degli utenti di PHP, che si sta per utilizzare le funzioni di base di dati API nel codice dell'applicazione, senza alcun involucro intermedio, poi DOP è l'unica scelta, in quanto è una sorta di involucro già, automatizzando molti operazioni che con mysqli devono essere eseguite manualmente.

No, non ci sono opzioni di migrazione, perché l'approccio molto è cambiato radicalmente: invece di mettere variabili a destra nella query, essi devono essere sostituiti nella query con segni speciali. Non c'è modo di automatizzare questo processo.

+0

DOP non è la tua unica scelta. mysqli_ è anche una scelta. E in qualche modo una scelta migliore in quanto è più paragonabile a mysql_. A seconda di quanta riscrittura è desiderata o persino consentita, la PDO potrebbe non essere nemmeno una scelta fattibile. – jmarkmurphy

+0

@jmarkmurphy un altro non può leggere. Perché non sono sorpreso. –

+0

@jmarkmurphy il tuo commento è effettivamente errato. Non si può affermare che 'mysqli' sia migliore di' PDO' se: 1) 'mysqli' funziona solo con MySQL 2)' mysqli' ha un'interfaccia più complessa 3) Essere paragonabile a 'mysql_' è un passo indietro, non in avanti - quindi, no, non è meglio. Affermare che 'PDO' potrebbe non essere nemmeno una scelta fattibile non ha senso, non è supportato da una singola prova dimostrabile ed è solo il tuo * parere *. E sai cosa dicono dell'opinione in un'area che si basa sulla matematica e sulla logica? –

-2

DOP e mysqli entrambi sono utilizzati per la connessione al database ed entrambi hanno il proprio tornaconto. In uno sguardo più ravvicinato PDO vince la battaglia, ma se si rimane davvero con un solo fornitore di database, la mia migliore scelta personale è usare MySQLi.

Sarà inoltre estrarre alcuni buoni punti da: http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059

4

Diamo un'occhiata a entrambi di queste estensioni.

DOP

DOP è il database neutra - Hai solo bisogno di imparare un'API per lavorare con decine di databases

Quindi, se si decide di spostare in un altro database, l'unica cosa che sarebbe cambiare è il DSN (nome dell'origine dati).

sostegno sia nome e '?' segnaposto per dichiarazioni preparate.

Drupal utilizza DOP.

MySQLi

D'altro canto MySQLi è progettato specificamente per i database MySQL ed è consigliato da Mysql. Mysqli funziona con i database Mysql e MariaDB.

Supporto solo '?' segnaposto per dichiarazioni preparate.

Joomla utilizza MySQLi

Conclusione

Ci sono molti argomenti contrastanti weather MySQLi o DOP è più veloce. Sia Mysqli che PDO utilizzano gli stessi driver sottostanti per accedere al database, rendendo le prestazioni non degne di confronto.

Quindi non c'è un vincitore chiaro quando si lavora con mysqli o DOP. Supponiamo che tu usi Mysqli e che in seguito desideri utilizzare un altro database, sarebbe una transizione difficile.

Il principale punto di forza di DOP su Mysqli è il nome di segnaposto per le dichiarazioni preparate ed è per questo che ho scelto PDO su Mysqli.

+0

Hai mai provato a passare a un altro database modificando il "DNS"? –

+0

@YourCommonSense, grazie per aver segnalato :) – user3284463

+0

La domanda non era lo stupido errore di battitura, ma la tua esperienza effettiva con il cambio dei back-end del database con la semplice modifica del DSN. –

Problemi correlati