Непонятно, какая связь между читаемостью кода и отладкой.
Ну то есть понятно что понты "я пишу код без ошибок", но в реальности читать код - это одно, а отлаживать - другое.
Даже самый читаемый и оттестированный код может содержать логическую ошибку. Или работать неправильно из-за неверных входящих данных. Именно такие ошибки и ищутся с помощью трассировки.
Akina, я имею в виду саму реализацию оконной функции.
Будет ли подсчет при её использовании таким же быстрым, как count() отдельным запросом, или таким же медленным, как подсчет с помощью SQL_CALC_FOUND_ROWS.
ThunderCat, на самом деле dispense создаёт пустой объект, в котором есть только имя таблицы. Но при этом с БД никак не связанный. А вся магия происходит в store. Если таблицы нет, то сначала её создадим. Если полей нет, то их создадим. Если поля другого типа, то поменяем тип. И потом только запишем новую строку. Реально, Двое из ларца, одинаковые с лица. Даже пальцы за нерадивого Вовку загибают.
polak228, ну для 16 лет и 5 месяцев это конечно выглядит очень неплохо.
Но начинать лучше с азов
предлагаю начать с класса для работы с БД.
Чтобы он соединялся 1 раз за всё время и умел выполнять подготовленные запросы из переданной строки SQL и массива с значениями
protected function purify(string $string) : string {
return trim(htmlspecialchars(addslashes($string)));
}
Я недавно отвечал на похожий вопрос.
Там, правда, градус глупости функции сильно выше.
Но и здесь это ужас-ужас, а главное - подход один и тот же.
Мало того что оно вам портит данные (скажем, введет человек в форме имя O'Neal), а ему при ошибке вернётся в форму какой-то O-палка-'Neal, но главное - всё равно от инъекций не защищает.
Логика системы "Положим кредитную карту в сейф, оботрем его антисептиком и потом наденем на сейф маску, бронежилет и презерватив. " Ведь всё это применяется для безопасности!
А номер карты и cvv напишем на бумажке, которую прилепим к сейфу
polak228, "в функцию поступают фильтрованные данные" - это и есть одна из самых больших ошибок.
я конечно посмотрю, поскольку мне интересно, какой конкретно вариант говнокода у вас применён из тех что я знаю, но могу вас заверить, что ни один из них не является правильным решением.
Это не наезд, а констатация факта.