Если через php отправляю mysql запрос, который содержит символы комментирования /*, то получаю ошибку синтаксиса: HTML: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*' AND hash='82c4f61cd2989405c354e4591d005b3c')' at line 1 Другие виды комментирования работают: "-- " и "#". Если тот же запрос отправляю через консоль линукса, то все работает. Почему так?
Не закрытый /* разве является символом комментирования в mysql? И зачем отправлять такой запрос базе? Через консоль линукса работает, потому что там точка с запятой, а мультизапросы, по умолчанию, игнорируются сейчас мускулем в целях безопасности. Часть с ошибкой просто отбрасывается. А через тот инструмент, которым ты скидываешь, возможно идет принудительный мультизапрос. И мускуль им давится.
Да это понятно, что есть разные варианты как можно отправить запрос. Но интересует вариант, когда юзер вводит что-то в поля и отправляет данные через форму, а php общается с БД. Я пытался разобраться почему не работало комментирование на случай, если пользователь введет его в текстовое поле. Ну а не экранирую я все это дело как раз для того, чтобы юзер мог наблюдать за тем, что происходит с его запросом. Это элемент обучения sql-иньекциям.
phpMyAdmin же. PMA сейчас уже обзаводится элементами IDE. Ну и в гуях мышой ковыряться приятнее, чем в консоли с докой в зубах. Ладно, если делаешь что-то, к чему привык, а вот когда за какой-то экзотикой лезешь, другой разговор идет. PMA уже давно охватывает все, что можно охватить, пожалуй. Даже умеет в построение диаграмм связей и в анализ эксплейнов. Отличный высокоуровневый инструмент, экономящий массу сил и времени.