в нем 5 колонок. Ничего больше датабаза тебе не вернет. Только именно эти 5 колонок. поэтому "выпиливать" из него ничего не надо. поэтому код с перекладыванием из пустого в порожнее является на 146% избыточным.
прежде чем продолжать свой плач ярославны, потрудись привести конкретный пример тех самых "багов", которые тебе придется вылавливать не в твоей влажной абстрактной картине мира, а после конкретно вот этого кода:
$result = $db->query('SELECT id, title, date, author_name, short_content FROM news ORDER BY id ASC LIMIT 10');
return $result->fetchAll(PDO::FETCH_ASSOC);
Возможно, твои проблемы были когда-то вызваны неочевидным поведением похапе, который действительно по умолчанию, возвращает данные в двойном экземпляре и для фронтовиков это становится неприятным сюрпризом. И с тех пор ты не можешь оправиться от этого шока. Но эта проблема тоже решается штатными средствами, а не написанием обезьянего кода.
Gene Hagmt, начнем с того, что термин "модель" здесь неправильный. модель - это вся логика приложения, и она включает в себя множество классов. А то что здесь называется моделью на самом деле просто слой для работы с БД.
Я добавил к ответу ссылку на нормальный канал.
еще очень рекомендую посмотреть доклад Дмитрия на ПХПРаша когда он появится в свободном доступе. Он просто идеально раскладывает все по полочкам, https://phprussia.ru/2019/abstracts/5114
Robur, вот не надо только этих пудовых рыданий.
Список полей в запросе и в цикле идентичный. И дублировать его в цикле - это чистый идиотизм, без оправданий.
Про $newsList[$i] вместо $newsList[] тоже найдешь оправдание? Голимую статику тоже запишешь в плюсы?
То же мне, мать Тереза выискался, за всех убогих вступаться.
Зачем все эти телодвижения? Сначала папку создавать, потом удалять.
Ты правда думаешь, что если сайт поддерживает например 100000 поддоменов, то создается 100000 папок?
Стрельба в ногу - это одно, а понимание смысла функции- совсем другое. Хватит уже вертеться, как уж на сковородке. Даже со второй попытки не получилось правильно написать, что эта функция делает. А все потому, что нет чёткого понимания, для чего она нужна, а вместо него ископаемое суеверие про злоумышленников.
Ну поскольку этой "уязвимости" подвержен любой код, использующий mysqli_real_escape_string(), то ты у нас теперь властелин мира, и можешь поломать половину сайтов в интернете. Можешь приступать :)
Когда закончишь, можешь попробовать исправить свой ответ ещё раз. Я потом проинспектирую.
Что характерно, "дисклеймер", добавленный в вопрос, более чем наглядно демонстрирует отчаянное непонимание смысла функции. Которая предназначена для строковых литералов SQL, и не имеет никакого отношения к типам данных РНР. Число, пришедшее из НТТР запроса, имеет строковый тип данных. Имя поля, которое в SQL является идентификатором, при этом прекрасно подходит под определение "строковой тип данных РНР". С ожидаемо печальными последствиями.
Обьяснял-то ты объяснял, но убедительными эти объяснения кажутся только тебе. А по факту это неуклюжие оправдания, сочиненные на ходу, "ой я не то имел и не для тех писал, а так-то я знающий разработчик и крупный специалист, даже символы знаю". :)
Ты бы видел, как сам выглядишь со стороны. Был бы ужом, давно бы в узел завязался от усердия :)
Ты, главное, не питай иллюзий насчет адекватности своих оправданий. Все эти "я знал, но не сказал" и "мой ответ предназначен для адекватных" - это все психотерапия для бедных. Ну себя ты, допустим и убедишь, что умный и красивый и все-все знаешь. Но чисто для информации - со стороны ты выглядишь просто забавным :)
Я смотрю ты отчаянно пытаешься оправдаться в своих глазах.
В этом большой беды нет, если бы только это занятие не занимало все твои интеллектуальные ресурсы.
Которые было бы куда полезнее потратить на то чтобы наконец понять, что делает эта функция :)
Учитывая бесчисленные стада хомячков, которые, как и ты, блеят про слеши и злоумышленников, приходится быть занудой.
Больше всего меня в этом треде забавляет это дистанцирование, как будто ты чем-то отличаешься от "любителей стрелять себе в ногу". Ну ладно, будем надеяться, что ты этот урок наконец-то выучил, и больше в эту ересь верить не будешь.
Быстро же ты прошел путь от "отредактирую" до "у меня времени нет".
Беда не в том что ты не расписал, а в том, что не знал. А сейчас завертелся "у меня времени не было".
Остальные хоть имели мужество признаться что да - налажали.
показываю на пальцах. Вот запрос:
SELECT id, title, date, author_name, short_content
в нем 5 колонок. Ничего больше датабаза тебе не вернет. Только именно эти 5 колонок. поэтому "выпиливать" из него ничего не надо. поэтому код с перекладыванием из пустого в порожнее является на 146% избыточным.
прежде чем продолжать свой плач ярославны, потрудись привести конкретный пример тех самых "багов", которые тебе придется вылавливать не в твоей влажной абстрактной картине мира, а после конкретно вот этого кода:
Возможно, твои проблемы были когда-то вызваны неочевидным поведением похапе, который действительно по умолчанию, возвращает данные в двойном экземпляре и для фронтовиков это становится неприятным сюрпризом. И с тех пор ты не можешь оправиться от этого шока. Но эта проблема тоже решается штатными средствами, а не написанием обезьянего кода.