Това е почти религиозна дискусия, в зависимост от това кого питате. Има деликатен баланс, който разработчиците и базите данни трябва да помирят в този тип случаи.
По принцип ето мисленето, което наистина искате да включите в игра:
Ако PHP кодът използва динамичен SQL, защитата срещу атаки с инжектиране на SQL трябва да се има предвид по всяко време. Входовете ТРЯБВА да бъдат дезинфекцирани преди поставяне в базата данни.
Ако PHP кодът използва динамичен SQL, но конвенцията е да се използват подготвени изрази, тогава сте по-безопасни до известна степен, но трябва да се внимава как се използват подготвените оператори.
Ако PHP кодът използва съхранени процедури, голяма част от контрола на SQL се премахва от разработчика и се оставя на DBA да работи с разработчиците, за да осигури адекватно решение, което отговаря на техните нужди. Това за съжаление може да доведе до много време и усилия и връщане напред-назад при разработка/поддръжка.
Това е едно от онези неща, които са сива зона и има много школи на мислене коя страна на уравнението е правилна, защото и двете са от определени гледни точки.