2

1:PDO使用准备好的语句,准备好的意思是我们在我认为的许多函数中使用它,并且我们为许多函数准备了它。然后我只想知道我应该在我的所有函数中使用不同的sql查询还是应该我首先在我的 init.php 文件中定义了许多查询(其中包括函数和与 db 的连接),然后在每个函数中将它们传递给函数以使用这些查询?这只是我所描述的示例:

$query1 = "Insert into names(id,name) values (:id,:names)"
$query2 = "insert into games(id,name) values (:id,:names)"

然后对于像这样的功能

function job($query){
//do the job
}

我问这个问题是因为我在某个地方读到我必须在多个地方使用这个准备好的语句,如果它是真的,我应该如何在函数中使用一些独特的查询?

2:我可以在两个准备好的语句中使用这个 :id :names 吗?或者我必须设置唯一的名称?

$query1 = "Insert into names(id,name) values (:id,:names)"
$query2 = "insert into games(id,name) values (:id,:names)"

他们不会互相冲突吗?

4

2 回答 2

2

我当然不会将我的所有查询都定义在一个地方以供以后使用——我会将查询放在将要使用的地方;否则它可能会变得非常混乱,特别是如果你将它们命名为query1,query2等。

如果您有单独准备的相同查询,那么您可以毫无问题地使用相同的标记:

$stmt1 = $db->prepare($query1);
$stmt2 = $db->prepare($query2);

您可以为 和 绑定完全不同:id的值。:namestmt1stmt2

于 2012-11-26T23:47:58.087 回答
1

如果在每个查询之后绑定 :id 和 :name 就可以了,但是如果在声明两个查询语句后只绑定一次,最后一个绑定的语句将覆盖这些值。如果您愿意,您可以创建一个函数来处理查询,我个人每次都会写出查询,只是为了留意我在做什么,以防我需要在最后一刻进行更改,但这可以简化您的工作。

于 2012-11-26T23:44:38.763 回答