У меня есть этот запрос
$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 ...
использование ${variable}
синтаксис:
$sql = "INSERT INTO ${prefix}request_products (created_at, request_id) VALUES (NOW(), :request_id)";
Руководство здесь: 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)";