2014-04-13 130 views
1

是否可以將參數值插入到插入的select語句中?試圖弄清楚這一點我還沒有成功。Mysql和PDO:插入選擇和參數

我明顯知道下面的查詢是錯誤的,但我不知道該從哪裏去。

查詢

INSERT INTO test 
SELECT other.col1, other.col2, :somevalue 
FROM other 
+0

是':somevalue'打算成爲一個字符串文字而不是列名?換句話說,你正在做'SELECT col1,col2',一個'FROM other'字符串,或者你正在嘗試使用一個動態列名稱'SELECT col1,col2,unknowncol3 FROM other'? –

+0

你可以用更具體的細節描述你正在選擇什麼,插入的結果應該是什麼? –

+0

是的,:somevalue旨在成爲字符串文字,而不是列名稱。 – Ralph

回答

0

什麼您正試圖在語法上是有效的,並應能正常工作。除非目標表具有完全相同的列數,則INSERT語句必須包含一個列列表:

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

注意這句法與PDO綁定參數的作品,因爲:somevalue意味着是一個字符串文字。如果你一直希望:somevalue是一個動態確定的列名稱而不是一個蜇,那不會按預期工作 - 你會得到一個文字字符串值而不是列名。