0

每次我创建一个 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();
4

2 回答 2

0

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

在底线中并不重要。在内存方面为每个查询使用单独的变量理论上可能会导致更高的要求,但这至少在您达到数万之前不会产生实际影响。所以不用担心。

于 2013-04-29T22:22:49.947 回答
0

如果始终是相同的 sql,您可以再次执行该部分:

$update_foobar_statement->bind_param('ss', $bar, $foobar);
$update_foobar_statement->execute();
于 2013-04-29T22:24:33.097 回答