2009-05-15 18 views
15

Sono abbastanza nuovo in PHP e ho creato un sito web di medie dimensioni utilizzando le chiamate standard di database MySQL. Tuttavia, recentemente ho imparato a conoscere PDO e spero di scoprire dalla comunità se vale la pena passare da MySQL a PDO. Per sicurezza ho usato mysql_real_escape_string.MySQL versus PDO

Informazioni sul sito:
sto usando un mix di INSERT e SELECT chiamate. I dati restituiti dalle chiamate SELECT non sono massicci (non sono stati restituiti più di 30 record utilizzando LIMIT). Non ci sarà anche un intero lotto di INSERT s. Il sito al momento non è attivo e quindi apportare modifiche ora è facile.

Nelle vostre opinioni professionali, vale la pena passare il mio sito a PDO da MySQL? O stare con MySQL è altrettanto buono? O in altre parole, quale sarebbe la ragione, se esiste, per passare a PDO ora?

+5

Il più grande svantaggio di utilizzare DOP che ho visto fino ad ora: Le persone che passano a PDO cercano ancora di usare 'mysql_real_escape_string()', e poi inviano un po 'di domande duplicate su StackOverflow quando non funziona: P –

risposta

33

DOP presenta i seguenti vantaggi rispetto alle funzioni mysql_ *:

  • E 'database di croce, significa che è la stessa interfaccia per i diversi database relazionali.
  • Aiuta a proteggere da iniezioni SQL.
  • È molto più pulito (utilizza un approccio orientato agli oggetti).

Questa domanda è stato chiesto prima, si consiglia di dare un'occhiata alle risposte:

Se si inizia un nuovo progetto, ho suggerirei rigorosamente l'utilizzo di PDO o di una libreria/ORM di livello superiore. Se hai già un sacco di codice scritto senza di esso, potrebbe non valerne la pena.

+0

Grazie per la risposta rapida. Sì, ho visto quegli altri post che sono stati utili. Mi chiedevo ancora di più se valesse la pena passare a DOP. Non avevo intenzione di passare in rassegna ma ora che ho imparato a conoscere PDO ero curioso di sapere se dovevo passare, o se stare con MYSQL andava bene. – justinl

+0

Beh, se hai già un sacco di codice scritto, non mi preoccuperei, ma per qualsiasi nuovo progetto suggerirei rigorosamente DOP. –

+0

Sì, c'è una buona quantità di codice. Vorrei averlo imparato prima.Ma è bello sapere che non è la fine del mondo se non la uso. Grazie ancora! – justinl

4

PDO presenta i vantaggi elencati nelle pagine collegate sopra: l'astrazione del database (ovvero il tuo codice è reso portatile su una varietà di versioni di DB), gestisce molti dei problemi di sicurezza usuali per te se lo usi ha preparato le caratteristiche dell'istruzione e restituisce i risultati come istanze di classe (che di per sé possono migliorare notevolmente il codice incoraggiando un approccio orientato agli oggetti) ecc.

Tuttavia, l'approccio migliore sarebbe quello di esaminare un ORM libreria come Doctrine. Può sembrare eccessivo date le dimensioni del tuo progetto, ma francamente non è mai troppo presto per iniziare ad apprendere le migliori pratiche. Un eccellente panoramica di come costruire a prova di proiettile, mantenibili applicazioni database-driven fornite dal capo sviluppatore di Zend Framework può essere guardato a http://mtadata.s3.amazonaws.com/webcasts/20090724-playdoh.wmv