2

我试图执行这样的事情

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


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

但这只是将 :message 发送到数据库,而不是 $_POST['message']; 的值 我能做些什么?

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

4

1 回答 1

3

尽管文档中从未明确提及它,但您可以在查询的SELECT一部分中使用占位符,INSERT ... SELECT就像使用任何其他类型的查询一样。所以这:

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

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

请注意,占位符不能用于列名和表名,因此您担心的事情是不可能的。)

于 2013-09-16T02:18:45.957 回答