Внедрение «настраиваемой» системы соединения безопасно

Задний пла

Здравствуйте, я разрабатываю экспериментальный / образовательный инструмент на 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, что поля и таблицы существуют,так далее

и что имена полей не обязательно должны быть идентичными: они будут соответствовать по порядку. (Укажите любые другие детали, о которых я мог не знать!)

В конечном итоге цель состоит в том, чтобы эти варианты сохранялись в таблице «настроек». По сути, пользователи создают «представления», которые они хотели бы видеть каждый раз, когда возвращаются.

Ответы на вопрос(2)

Ваш ответ на вопрос