Я пытаюсь удалить таблицу с динамическим именем. На самом деле я создаю таблицы и манипулирую ими динамически, но это самый простой из запросов.
Все работает нормально, когда я использую необработанный PDO, например:
// PURE PDO VERSION
$this->db = new PDO(
'mysql:host=' . $configParams['db_hostname']
. ';port=' . $configParams['db_port']
. ';dbname=' . $configParams['db_name']
. ';charset=utf8mb4',
$configParams['db_username'],
$configParams['db_password']
);
$this->ps_DeleteTempTable = $db->prepare(
"DROP TABLE `:tableName`"
);
Но когда я делаю то же самое, используя Laravel, вот так:
// LARAVEL VERSION
$pdo = DB::connection()->getPdo();
$this->ps_DeleteTempTable = $pdo->prepare(
"DROP TABLE `:tableName`"
);
Я получаю следующую ошибку:
SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица 'testdb.?' не существует
Я видел и другие вопросы по SO с аналогичными целями, но все они предполагают, что первый запрос, который я написал, не может работать, тогда как я использую его более года.
Спасибо,
DROP TABLE `testdb.'table'`
- что недопустимо. Какая версия PHP и MySQL у вас установлена? Можете ли вы также показать, как вы выполняете связывание? - person Qirel   schedule 07.06.2017