2

私はこのようなことを実行しようとしています

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


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

しかし、それは $_POST['message']; の値ではなく、:message をデータベースに送信するだけです。私に何ができる?

編集: 非常に申し訳ありませんが指定する必要があります。

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 に答える