Должен быть простой вопрос, я просто не знаком с синтаксисом PHP и мне интересно, безопасен ли следующий код от атак SQL-инъекций?:
private function _getAllIngredients($animal = null, $type = null) {
$ingredients = null;
if($animal != null && $type != null) {
$query = 'SELECT id, name, brief_description, description,
food_type, ingredient_type, image, price,
created_on, updated_on
FROM ingredient
WHERE food_type = \'' . $animal . '\'
AND ingredient_type =\'' . $type . '\';';
$rows = $this->query($query);
if(count($rows) > 0) {
и т. Д. И т. Д. И т. П.
Я немного погуглил, и кажется, что безопасный код для инъекций выглядит иначе, чем WHERE food_type = \ ''. $ животное. Синтаксис '\' используется здесь.
Извините, я не знаю, какая версия PHP или MySQL используется здесь, или если используются какие-либо сторонние библиотеки, может кто-нибудь с опытом предложить какой-либо вклад?
UPDATE
Какую цель \ служит в утверждении ?:
WHERE food_type = \'' . $animal . '\'
В своем поиске я наткнулся на множество ссылок на mysql_real_escape_string
... это функция для защиты от SQL-инъекций и других мерзостей?
Объявление класса:
class DCIngredient extends SSDataController
Так возможно ли, чтобы туда включили mysql_real_escape_string
?
Должен ли я просить увидеть реализацию SSDataController?