Mysql
 sql >> Database >  >> RDS >> Mysql

Qualche motivo per non utilizzare le stored procedure per ogni query?

Questa è quasi una discussione religiosa a seconda di chi chiedi. C'è un delicato equilibrio che sviluppatori e dbas devono conciliare in questi tipi di casi.

Fondamentalmente ecco il pensiero che vuoi davvero mettere in gioco:

Se il codice PHP utilizza SQL dinamico, è necessario considerare sempre le protezioni contro gli attacchi di SQL injection. Gli input DEVONO essere disinfettati prima di essere inseriti nel database.

Se il codice PHP utilizza SQL dinamico ma la convenzione prevede l'utilizzo di istruzioni preparate, in una certa misura sei più sicuro, ma è necessario prestare attenzione a come vengono utilizzate le istruzioni preparate.

Se il codice PHP utilizza procedure archiviate, gran parte del controllo dell'SQL viene rimosso dallo sviluppatore e lasciato al DBA per lavorare con gli sviluppatori per fornire una soluzione adeguata che soddisfi le loro esigenze. Sfortunatamente, questo può causare molto tempo e fatica e andare avanti e indietro nello sviluppo/manutenzione.

È una di quelle cose che è un'area grigia e ci sono molte scuole di pensiero su quale lato dell'equazione è giusto perché lo sono entrambi da certi punti di vista.