我创建了太多的mysqli对象吗?

时间:2013-04-29 22:16:58

标签: php

每次我创建一个mysqli对象时,我都会使用这样的mysqli语句(有时每页几个):

$update_foobar_statement = $mysqli->prepare("UPDATE foo SET bar  = ? WHERE foobar = ?");
$update_foobar_statement->bind_param('ss', $bar, $foobar);
$update_foobar_statement->execute();

我实际上是在创建mysqli对象的副本。这让我觉得我可能会创建太多对象并损害我的Web应用程序的整体性能。

我喜欢澄清mysqli语句通过初始变量做了什么,但这是不好的做法?我应该做以下事情吗?

$mysqli->prepare("UPDATE foo SET bar  = ? WHERE foobar = ?");
$mysqli->bind_param('ss', $bar, $foobar);
$mysqli->execute();

2 个答案:

答案 0 :(得分:0)

你还必须在第二种情况下存储$mysqli->prepare的返回值,所以讨论的唯一内容是变量的名称以及是否重用它。

底线并不重要。对于每个查询,在内存方面使用单独的变量理论上可以导致更高的要求,但是在你至少达到成千上万之前,这将没有实际效果。所以不要担心。

答案 1 :(得分:0)

如果总是相同的sql,你可以再次执行该部分:

$update_foobar_statement->bind_param('ss', $bar, $foobar);
$update_foobar_statement->execute();