Подбор домена. Чтение между строк

Другая распространенная привычка, свойственная использующим антипаттерн Незамечаемые недостатки, заключается в отладке кода путем пристального взгляда на прикладной код, в который встроен SQL-запрос в виде строки.

Задачи подбора домена по ключевым словам, подбора доменного имени, проверка доменных имен, регистрация доменных имен, хостинга все решаемы здесь: подбор доменов.

Это трудно, поскольку тяжело представить результирующую SQL-строку после встраивания ее в логику приложения, конкатенацию строк или дополнительный контент из переменных приложения. Попытка отладить код таким образом похожа на попытку собрать паззлы, не смотря на картинку на коробке.

Для простого примера, взгляните на тип вопроса, который часто задают разработчики. Указанный ниже код встраивает запрос в зависимости от конкатенации оператора WHERE, если сценарий должен искать определенную ошибку вместо коллекции ошибок.

Файл примера: See-No-Evil/anti/white-space.php $sql = "SELECT * FROM Bugs"; if ($bug_id) {

$sql .= "WHERE bug_id = " . intval($bug_id);

}

$stmt = $pdo->prepare($sql);

Почему запрос в этом примере выдает ошибку? Ответ будет абсолютно ясен, если посмотреть на полную строку $sql, являющуюся результатом конкатенации:

Файл примера: See-No-Evil/anti/white-space.sql SELECT * FROM BugsWHERE bug_id = 1234

Между словами Bugs и WHERE нет пробела, что дает запросу недопустимый синтаксис, буквосочетание BugsWHERE распознается как название таблицы,сопровождаемое SQL-выражением в неверном контексте. Код соединил строки, не оставив между ними пробела.

01.01.2012

Добавить страницу в мои закладки:

Смотрите также:
Оставить отзыв

Подтвердите, что Вы не бот — выберите самый большой кружок:

Какую позицию должна занять Россия в отношении ДНР и ЛНР?

Loading ... Loading ...

Архив опросов

Отзывов на сайте: 12148
Вчера: 11. Сегодня: 5