Внедрение «настраиваемой» системы соединения безопасно
Задний пла
Здравствуйте, я разрабатываю экспериментальный / образовательный инструмент на PHP и MySQL. Я новичок в SQL, но я хочу сделать все правильно с самого начала. Я использую подготовленные операторы PDO для всех подстановок переменных, и везде возможна обратная галочка (таким образом, как я понимаю, он не будет переносимым на базы данных не-MySQL). Что касается моей проблемы, у меня есть идея относительно того, как идти дальше, но на ее реализацию у меня уйдет несколько часов (я новичок даже в синтаксисе SQL), поэтому я решил сначала создать вопрос, просто в случае, если кто-то может кричать: «Это не способ сделать это!» и сэкономь мне много времени.
Проблема
Я хотел бы создать интерфейс, в котором пользователь будет выбирать из выпадающих меню:
столA
, одно или несколько полей в этой таблице, напримерA.x
а такжеA.y
,столB
, одно или несколько полей в этой таблице, напримерB.z
а такжеB.y
, и после отправки код будет выполнять внутреннее соединение, соответствующее каждому полю соответственно, например,A.x = B.z
, A.y = B.y
и т. д. и вернуть все совпадающие строки.
Мой план - просто создатьINNER JOIN
Оператор SQL, проходящий по полям и вставляющий заполнители ?
), привязка соответствующих параметров и, наконец, выполнение оператора.
Есть ли более простой способ сделать это? Есть ли лучший способ сделать это? Будет ли это каким-то образом эксплуатироваться?
Заранее большое спасибо. Если никто не ответит ко времени, когда я закончу (сомнительно), я опубликую свое решение.
Разное.
Предположим, что я проверю
что пользователь выбирает равное количество полей междуA
а такжеB
, что поля и таблицы существуют,так далееи что имена полей не обязательно должны быть идентичными: они будут соответствовать по порядку. (Укажите любые другие детали, о которых я мог не знать!)
В конечном итоге цель состоит в том, чтобы эти варианты сохранялись в таблице «настроек». По сути, пользователи создают «представления», которые они хотели бы видеть каждый раз, когда возвращаются.