Kadi
@Kadi
веб-разработчик

Как задать имя таблицы через переменную, в PDO запросе?

В общем, в базе есть свыше 50 таблиц, одинаковой структуры. Использую PDO. Необходимо записать входящие данные в ту таблицу, которая указана в переменной.
вот мой неработающий код:
(использую библиотеку Db.class.php)
$tablename = 'tablename';
$db->bind("data1", $data1);
$db->bind("data2", $data2);
$db->bind("data3", $data3);
$insert   =  $db->query("INSERT INTO $tablename(data1,data2,data3) VALUES(:data1,:data2,:data3)");
  • Вопрос задан
  • 3703 просмотра
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
А что за ошибка? Так делать конечно не надо, это мягко говоря не безопасно и теряется весь смысл от PDO, но должно работать.

Table and Column names cannot be replaced by parameters in PDO. In that case you will simply want to filter and sanitize the data manually.
stackoverflow.com/questions/182287/can-php-pdo-sta...

PS и хорошо бы раз вы используете PDO указывать явно типизацию при bind.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
в базе есть свыше 50 таблиц, одинаковой структуры.

дальше можно было бы не продолжать.
поскольку после такой кривизны все остальное уже не имеет значения
Но на будущее, phpfaq.ru/pdo#identifiers
Ответ написан
Ваш ответ на вопрос

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

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