1
  • 我什么时候应该使用准备好的语句?对于任何类型的查询或只是特定类型?
  • 我应该使用准备好的语句进行选择或插入等吗?
  • 我什么时候不应该使用它们?

谢谢。

4

3 回答 3

4

准备好的语句应该用于包含参数的查询。否则,它们是资源的浪费。

例子:

$pdo->query("SELECT * FROM `table`"); //No need for preparing here, no parameters.

然而

$pdo->prepare("SELECT * FROM `table` WHERE `id` = :id"); //Prepare.
于 2013-09-08T20:38:52.453 回答
0

我什么时候应该使用准备好的语句?对于任何类型的查询或只是特定类型?

对于任何种类最好。特别是如果您有专门的函数或类来运行查询。在这种情况下,应该只有一种方法来运行所有查询,无论它们是否具有动态部分。
更不用说像“SELECT * FROM table”这样的全静态查询在沙盒之外是罕见的。

我应该使用准备好的语句进行选择或插入等吗?

没关系。这个想法是用 placeholder表示查询中的每个动态值。查询类型绝对无关紧要。

我什么时候不应该使用它们?

这个问题与第一个问题非常相似。如果一直使用准备好的语句,你会帮自己一个大忙。

于 2013-09-09T00:09:11.597 回答
-1

每当您要使用来自程序外部任何地方的数据时,都应该使用准备好的语句和参数化查询。这包括与数据库的任何交互,无论是 INSERT、DELETE 或 UPDATE,甚至是 SELECT。

如果您使用外部数据构建 SQL 语句,您将处于危险之中。

于 2013-09-09T00:10:49.353 回答