我开始在我的应用程序中使用PDO和准备语句,但我对那里的专业人员有一些疑问。希望你能帮我! :)
答案 0 :(得分:7)
我应该何时使用准备好的陈述?我整个应用程序中的每个查询?
是。到处使用它们。几乎没有边缘情况,您仍然需要连接SQL和值转义。绑定参数不能取代动态SQL构造。
我可以在INSERT中使用预准备语句吗?
是。 INSERT INTO tbl (x,y,z) VALUES (?,?,?)
我可以在INSERT中使用带变量列的预处理语句吗?
是。但是列名不能绑定参数。构造动态INSERT语句需要过滤器和/或转义函数。
准备好的语句多快(使用SELECT或INSERT时)
没有一般答案。
如果循环数据数组并重复使用预准备语句进行插入,则会出现速度增加。普通查询:取决于。测试自己。
我可以使用UPDATE准备好的语句吗?
是。 UPDATE tbl SET x = ? AND y = ? WHERE z = ?
除了速度提升和安全性之外,我为什么要使用它们?
使SQL查询更具可读性。
答案 1 :(得分:2)
我应该何时使用准备好的陈述?我整个应用程序中的每个查询?
当然,是的,否则一切都是徒劳无助的。
我可以在INSERT中使用预准备语句吗?
您怎么看?如果你不能,它会有意义吗? “我们为你制作了一套出色的盔甲,但它只保护了一方”?
我可以在INSERT中使用带变量列的预处理语句吗?
您可以添加可变数量的占位符!
准备好的语句多快(使用SELECT或INSERT时)
你永远不会注意到。
我可以使用UPDATE准备好的语句吗?
没有评论。
除了速度提升和安全性之外,我为什么要使用它们?
嗯,原因与魔术引号完全相同 - 它可以为那些毫无头绪的人提供更安全的应用程序。就是这样。