Как утверждают другие, абсолютно не отправлять прямой SQL в вызов AJAX. Хакер мог легко написать свой собственный SQL-запрос для выполнения любого кода, который они хотят в вашей базе данных. Insead, вы можете передать POST несколько разных значений полей, которые вы хотите фильтровать (например, значение «имя» или «ключ» или «age_range»). Затем настройте PHP на принимающей стороне, чтобы быть умным, когда использовать эти значения; если ключ присутствует, используйте его как идентификатор и используйте запрос X. Если ключ отсутствует, проверьте имя или другие значения для поиска правильной строки и подключите их к запросу Y.
Как говорит ИндодИтраст, вы также можете отправить значение POST, который определяет, какие запросы использовать, т.е.
q: 'LongerQuery'
затем в принимающем PHP, есть несколько IF или CASE-операторов, которые готовят другой запрос в зависимости от того, какого значения Q было.
На моем сайте есть генератор диаграмм, в котором пользователь может изменять настройки для данных, которые передаются по осям X и Y, независимо от того, разделены ли данные на разные серии и как пул данных должен быть отфильтрован, если пользователь хочет только чтобы посмотреть на конкретную демографию. Эти настройки отправляются через AJAX/POST, когда пользователь нажимает кнопку «Создать». Получающая страница PHP строит запрос данных диаграммы на основе этих 20-ти входов; результирующие запросы могут выглядеть совсем иными в зависимости от настроек, которые пользователь выбрал. Я описываю это, чтобы проиллюстрировать, что AJAX можно использовать для создания чрезвычайно гибких и отвечающих на запросы пользователей запросов, не создавая угрозы безопасности.
Ну, в вашем синтаксисе нет ничего плохого, но по соображениям безопасности люди обычно не отправляют SQL на сервер ... Не забывайте, что ваш клиентский скрипт открыт для всех, я могу изменить SQL, который вы написали в своем код, чтобы делать то, что я хочу. Вы можете использовать «глагол», например «get» в качестве параметра GET, и пусть PHP решит, что SQL выполнить. – LotusH