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);

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

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

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

Войти через центр авторизации
Похожие вопросы