Запрос PDO с переменной и строкой, объединенной как имя таблицы

У меня есть этот запрос

$prefix = 'de_';
$sql = "INSERT INTO $prefix.request_products (created_at, request_id) VALUES (NOW(), :request_id)";

Что бы работало, но php или PDO (или оба) пишут точку в запросе, имя таблицы de_request_products но запрос строится как de_.request_products,

Если я просто использую пробел между префиксом $ и строкой, PDO выдает ошибку.

Есть ли какая-либо другая возможность объединить строку и переменную в запросе, или это единственный способ построить ее следующим образом:

$prefix = 'de_';
$table = 'request_products';
$concat = $prefix.$table;
$sql = INSERT INTO $concat ...

0

Решение

использование ${variable} синтаксис:

$sql = "INSERT INTO ${prefix}request_products (created_at, request_id) VALUES (NOW(), :request_id)";
1

Другие решения

Руководство здесь: http://php.net/manual/pl/language.types.string.php
говорит: «Заключите имя переменной в фигурные скобки, чтобы явно указать конец имени.» Так что это должно вас порадовать:

$prefix = 'de_';
$sql = "INSERT INTO ${prefix}request_products (created_at, request_id) VALUES (NOW(), :request_id)";
1

По вопросам рекламы [email protected]