Я работаю с базой данных MySQL, в которой у меня есть таблицы, названные так:
Колонки в " Users
:
Как я могу структурировать SQL-запрос, который будет:
a) Выберите compId из таблицы Users, где userEmail равен адресу электронной почты, предоставленному через подготовленный mysqli оператор. b) Затем найдите таблицу с именем таблицы, которая соответствует compId и выберет все данные из нее?
Я до сих пор старался сделать следующее (безрезультатно):
$sql = "
SELECT * FROM table_name
WHERE table_name =
(SELECT compId
FROM Users
WHERE userEmail = ?)
";
Заранее спасибо.
Вы должны построить строку SQL из INFORMATION_SCHEMA.TABLES
select @querystring := CONCAT('SELECT * FROM ', table_name)
from information_schema.TABLES
where TABLE_NAME =
(SELECT
compId
FROM
Users
WHERE
userEmail = {?})
PREPARE statement from @querystring;
EXECUTE statement
Я не самый удобный с PHP, но это работает для меня до тех пор, пока вы введете userEmail в {?}, Где я обозначен как параметр.