有关PDO和准备好的声明的几个问题 [英] A few questions about PDO and prepared statements

查看:63
本文介绍了有关PDO和准备好的声明的几个问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开始在我的应用程序中使用PDO和准备好的语句,但是我对专业人士有一些疑问.希望你能帮我! :)

I'm starting to use PDO and prepared statements in my applications, but i have some questions to the pros out there. Hope you can help me! :)

  1. 我应何时使用准备好的陈述?我整个应用程序中的每个查询?
  2. 我可以在INSERT语句中使用准备好的语句吗?
  3. 我可以在INSERT中使用带有可变列的预处理语句吗?
  4. 准备好的语句有多快(使用SELECT或INSERT时)
  5. 我可以使用带有UPDATE的准备好的语句吗?
  6. 除了提高速度和提高安全性外,为什么还要使用它们?

推荐答案

我什么时候应该使用准备好的陈述?我整个应用程序中的每个查询?

When should i use prepared statements? Every query in my entire application?

是的.随处使用它们.在极少数情况下,您仍然需要连接的SQL和值转义.绑定参数不能替代动态SQL构造.

Yes. Use them everywhere. There are few edge cases where you would still need concatenated SQL and value escaping. Bound parameters cannot replace dynamic SQL construction.

我可以在INSERT语句中使用准备好的语句吗?

Can i use prepared statements with INSERT's?

是的. INSERT INTO tbl (x,y,z) VALUES (?,?,?)

我可以在INSERT中使用带有可变列的准备好的语句吗?

Can i use prepared statements with variable columns in my INSERT?

是的.但是列名称不能是绑定参数.构造动态INSERT语句需要过滤器和/或转义函数.

Yes. But column names cannot be bound parameters. Constructing dynamic INSERT statements needs a filter and/or escaping function.

准备好的语句有多快(使用SELECT或INSERT时)

How much faster prepared statements are (when using SELECT or INSERT)

没有一般性答案.

如果您遍历数据数组并重复使用准备好的语句进行插入,则会提高速度.普通查询:视情况而定.测试自己.

Speed gains occur if you loop over data arrays and reuse a prepared statement to insert. Ordinary queries: depends. Test yourself.

我可以使用带有UPDATE的准备好的语句吗?

Can i use prepared statements with UPDATE?

是的. UPDATE tbl SET x = ? AND y = ? WHERE z = ?

除了提高速度和提高安全性外,为什么还要使用它们?

Why should i use them, other than speed improvement and security?

使SQL查询更具可读性.

Makes SQL queries more readable.

这篇关于有关PDO和准备好的声明的几个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆