我有这个查询
$prefix = 'de_';
$sql = "INSERT INTO $prefix.request_products (created_at, request_id) VALUES (NOW(), :request_id)";
哪个可行,但php或PDO(或两者)都在查询中写入点,表名为de_request_products
,但查询构建为de_.request_products
。
如果我只是在$ prefix和字符串之间使用空格,PDO会抛出错误。
还有其他可能性如何在查询中连接字符串和变量,或者是这样构建它的唯一方法:
$prefix = 'de_';
$table = 'request_products';
$concat = $prefix.$table;
$sql = INSERT INTO $concat ...
答案 0 :(得分:1)
使用${variable}
语法:
$sql = "INSERT INTO ${prefix}request_products (created_at, request_id) VALUES (NOW(), :request_id)";
答案 1 :(得分: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)";