我一直想知道绑定整个值列表是否是一种好习惯。例如,我必须进行以下查询:
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
,因为这是静态值,所以在插入新消息时始终为 0 的字段from_deleted
?to_deleted
我需要修改我的问题。我知道出于安全原因,没有理由绑定不是从用户生成的字段/值。在我的情况下,没有理由绑定文件notified
,因为它们总是 0。但我真正的问题是我是否应该出于其他原因绑定这些字段(缓存)。mysql 会缓存整个查询语句还是只缓存绑定的参数?from_deleted
to_deleted