Mysql和PDO:使用Select和参数插入

Mysql和PDO:使用Select和参数插入,mysql,pdo,Mysql,Pdo,是否可以将参数值放入select语句中进行插入?我想弄明白这一点还没成功 很明显,我知道下面的问题是错误的,但我不确定接下来该怎么办 质疑 您正在尝试的是语法上有效的,应该可以正常工作。除非目标表的列数完全相同,否则INSERT语句必须包含列列表: INSERT INTO test (col1, col2, col3) SELECT col1, col2, :somevalue FROM other 请注意,此语法适用于PDO绑定参数,因为:somevalue意味着是字符串文字。如果

是否可以将参数值放入select语句中进行插入?我想弄明白这一点还没成功

很明显,我知道下面的问题是错误的,但我不确定接下来该怎么办

质疑


您正在尝试的是语法上有效的,应该可以正常工作。除非目标表的列数完全相同,否则INSERT语句必须包含列列表:

INSERT INTO test (col1, col2, col3) 
  SELECT col1, col2, :somevalue
  FROM other

请注意,此语法适用于PDO绑定参数,因为:somevalue意味着是字符串文字。如果您一直希望:somevalue是一个动态确定的列名,而不是一个sting,那将无法按预期工作-您将得到一个文本字符串值而不是列名。

是:somevalue是一个字符串文本而不是列名吗?换句话说,您是在从other中选择col1、col2、“字符串”还是在尝试使用动态列名从other中选择col1、col2、unknowncol3?您能否更详细地描述一下您选择的内容以及插入的结果是什么?是的:somevalue是一个字符串文字,不是一个列名。我希望你所拥有的会起作用。它不起作用吗?如果没有,您会得到什么错误?Ohhhh-您忘记了将列列表插入测试col1,col2,col3选择col1,col2,:somevalue FROM other抱歉,我错过了:
INSERT INTO test (col1, col2, col3) 
  SELECT col1, col2, :somevalue
  FROM other