Задать вопрос
victorzadorozhnyy
@victorzadorozhnyy

Как правильно передать query SQL из jQuery в PHP?

Хочу сделать конструктор для запросов к базе данных из jQuery, через POST передаю параметры и собираю из квери.
Сложность в том, что нужно передать сразу SELECT * FROM engagements WHERE как стринг, а в таком виде отказывается работать.
//метод передает стринг на бекенд 
that.ReportList("SELECT * FROM  engagements WHERE eng_visitor_type='Metro North HHS Staff'");

$sql_list = $_POST['sql_list'];

//Вот тут и возникает проблема
$query = "$sql_list //SELECT * FROM  engagements WHERE eng_visitor_type='Metro North HHS Staff'
              AND ( eng_datetime BETWEEN '$date_start' AND '$date_finish' )
              AND ( team='$IHLO' OR team='$ADULTSH' OR team='$IPJ' OR team='$ISD' )";

$mysqli = new mysqli($localhost, $username, $password, $database);
$success = $mysqli->query($query);

Подскажите как такое решить?
  • Вопрос задан
  • 511 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 4
@vovastradamus
Так вы же всем показываете архитектуру БД. Не надо так
Ответ написан
Комментировать
Нельзя так делать! SQL-injection - это, конечно, всё выдумки и враки, да-да.

Сделайте публичный API, который принимая необходимые параметры, после их последующей фильтрации, после их проверки на валидность будет собирать и выполнять SQL запрос, отдавая ответ в json-формате, который клиент без проблем поймет и разберёт.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
экранируйте апострофы: \'
лучше всего энкодируйте строку в base64 и декодируйте на серверной стороне
Ответ написан
Комментировать
@kosarinin
Сделай выбор параметров, которые передаешь, а на сервере из параметров уже собирай sql. То, что ты делаешь, как минимум не безопасно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы