Mysql 从查询中获取列名后无法插入数据库

Mysql 从查询中获取列名后无法插入数据库,mysql,pdo,Mysql,Pdo,我正在尝试克隆所选表行。这些列存储在映射表中,是动态的。我从第一个查询中获取列名称,该列名称将在第二个查询中用于插入所选结果。 在这种情况下,我得到的错误是未知列“$matches” db = new PDO("..."); $statement = $db->query("select column_name from mapping_table"); $list = $statement->fetchAll(PDO::FETCH_COLUMN); $matches = implo

我正在尝试克隆所选表行。这些列存储在映射表中,是动态的。我从第一个查询中获取列名称,该列名称将在第二个查询中用于插入所选结果。 在这种情况下,我得到的错误是未知列“$matches”

db = new PDO("...");
$statement = $db->query("select column_name from mapping_table");
$list = $statement->fetchAll(PDO::FETCH_COLUMN);
$matches = implode('`,`', $list);

$db1 = new PDO("...");
$db1->query("insert into tbl_user(`$matches`) (SELECT `$matches` FROM tbl_user WHERE id= :id)");
$db1->bindParam(':id', $id);
$result= $db1->execute();

tbl\u用户的定义是什么?
var\u dump($matches)
返回什么?@JorgeCampos表tbl\u用户的列名存储在映射表中。现在,从第一次查询中,我得到了列名称“
id
名称
地址
邮政编码
”…如果它与tbl_用户中的列相同,则只需从变量中删除反勾号,因为此
`$matches`
将使列的孔列表成为一个单独的孔列表column@JorgeCampos是的,我已经尝试过删除这些backtick,尽管这种设计毫无意义,一个包含其他表的字段名的表。。。这真臭