値のリスト全体をバインドするのが良い方法かどうか、私はいつも疑問に思っていました。たとえば、次のクエリが必要です。
INSERT INTO messages
(thread_id,message,from_id,to_id,to_viewed,notified,from_deleted,to_deleted,created)
SELECT :threadId,:msg,:fromId,:toId,0,0,0,0,:createdTime FROM messages
WHERE thread_id = :threadId AND to_id=:toId LIMIT 1
この場合、これは静的な値であるため、フィールドもバインドする意味がnotified
ありfrom_deleted
ますto_deleted
。新しいメッセージを挿入するときは常に 0 ですか?
質問を変更する必要があります。セキュリティ上の理由から、ユーザーから生成されていないフィールド/値もバインドする理由がないことを知っています。私の場合、 fields をバインドする理由はなくnotified
、from_deleted
それらto_deleted
は常に 0 であるためです。しかし、私の本当の質問は、他の理由 (キャッシュ) でこれらのフィールドをバインドする必要があるかどうかです。mysql はクエリステートメント全体をキャッシュしますか、それともバインドされたパラメーターのみをキャッシュしますか?