BindValue在引号之间的sql语句中

时间:2013-09-16 02:01:14

标签: php pdo

我试图执行类似这样的事情

$SQL = "INSERT into cb_sent_alerts(user_id,message) 
    Select id, ' :message ' from story1";


$stmt->bindValue(':message', $_POST['message']);

但是只发送:消息到数据库,而不是$ _POST ['message']的值;我该怎么办?

编辑:非常抱歉应该指定,:消息不是cb_sent_alerts中的列,而是我想将消息作为字符串。

1 个答案:

答案 0 :(得分:3)

虽然文档中从未明确提及过,但您可以使用SELECT INSERT ... SELECT部分中的占位符与任何其他类型的查询相同的方式查询。所以这个:

INSERT INTO cb_sent_alerts(user_id,message) 
    SELECT id, :message FROM story1

...如果被bindValue(':message', $_POST('message')调用绑定,则以正确的值(字符串)结束。

请注意,占位符不能用于列和表名,因此您不敢担心。 )