我试图执行类似这样的事情
$SQL = "INSERT into cb_sent_alerts(user_id,message)
Select id, ' :message ' from story1";
$stmt->bindValue(':message', $_POST['message']);
但是只发送:消息到数据库,而不是$ _POST ['message']的值;我该怎么办?
编辑:非常抱歉应该指定,:消息不是cb_sent_alerts中的列,而是我想将消息作为字符串。
答案 0 :(得分:3)
虽然文档中从未明确提及过,但您可以使用SELECT
INSERT ... SELECT
部分中的占位符与任何其他类型的查询相同的方式查询。所以这个:
INSERT INTO cb_sent_alerts(user_id,message)
SELECT id, :message FROM story1
...如果被bindValue(':message', $_POST('message')
调用绑定,则以正确的值(字符串)结束。
请注意,占位符不能用于列和表名,因此您不敢担心。 )