C'est presque une discussion religieuse selon qui vous demandez. Il existe un équilibre délicat que les développeurs et les dbas doivent concilier dans ce type de cas.
En gros, voici la réflexion que vous voulez vraiment mettre en jeu :
Si le code PHP utilise du SQL dynamique, les protections contre les attaques par injection SQL doivent être prises en compte à tout moment. Les entrées DOIVENT être nettoyées avant de les placer dans la base de données.
Si le code PHP utilise du SQL dynamique mais que la convention est d'utiliser des instructions préparées, vous êtes plus sûr dans une certaine mesure, mais il faut faire attention à la façon dont les instructions préparées sont utilisées.
Si le code PHP utilise des procédures stockées, une grande partie du contrôle du SQL est retirée au développeur et laissée au DBA pour travailler avec les développeurs afin de fournir une solution adéquate qui répond à leurs besoins. Cela peut malheureusement demander beaucoup de temps et d'efforts et des allers-retours sur le développement/la maintenance.
C'est l'une de ces choses qui est une zone grise et il existe de nombreuses écoles de pensée sur le bon côté de l'équation parce qu'elles sont toutes les deux d'un certain point de vue.