To jest prawie dyskusja religijna, w zależności od tego, kogo zapytasz. Istnieje delikatna równowaga, którą programiści i dbający muszą pogodzić w tego typu przypadkach.
Oto myślenie, które naprawdę chcesz wprowadzić:
Jeśli kod PHP korzysta z dynamicznego SQL, zabezpieczenia przed atakami typu SQL injection muszą być brane pod uwagę przez cały czas. Wejścia MUSZĄ zostać oczyszczone przed umieszczeniem w bazie danych.
Jeśli kod PHP korzysta z dynamicznego SQL, ale zgodnie z konwencją używa się przygotowanych instrukcji, jesteś do pewnego stopnia bezpieczniejszy, ale należy zwrócić uwagę na to, jak przygotowane instrukcje są używane.
Jeśli kod PHP korzysta z procedur zapisanych w bazie, znaczna część kontroli nad SQL jest odebrana programiście i pozostawiona DBA, który współpracuje z programistami w celu zapewnienia odpowiedniego rozwiązania, które spełnia ich potrzeby. Niestety może to spowodować wiele czasu i wysiłku oraz chodzenie tam i z powrotem na rozwój/konserwację.
To jedna z tych rzeczy, które są szarą strefą i istnieje wiele szkół myślenia, po których stronie równania jest słuszna, ponieważ obie są z pewnych punktów widzenia.