每次我创建一个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();
答案 0 :(得分:0)
你还必须在第二种情况下存储$mysqli->prepare
的返回值,所以讨论的唯一内容是变量的名称以及是否重用它。
底线并不重要。对于每个查询,在内存方面使用单独的变量理论上可以导致更高的要求,但是在你至少达到成千上万之前,这将没有实际效果。所以不要担心。
答案 1 :(得分:0)
如果总是相同的sql,你可以再次执行该部分:
$update_foobar_statement->bind_param('ss', $bar, $foobar);
$update_foobar_statement->execute();