1

在很多情况下,我使用超过 1 个准备好的语句,就像这样

$conn = connect('read'); // connect to the database

$q = 'SELECT ...';
$stmt = $conn->prepare($q);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($a, $b, $c);
$stmt->free_result();
$stmt->close();


$q = 'SELECT ...';
$stmt2 = $conn->prepare($q);
$stmt2->execute();
$stmt2->store_result();
$stmt2->bind_result($a, $b, $c, $d, $e, $f...);
$stmt2->free_result();
$stmt2->close();


$conn->close(); // close db connection

有时它只是试图弄清楚给stmt变量的数字是什么......

一旦我关闭它,我可以一遍又一遍地重复使用它吗?这样我就不需要跟踪给变量 stmt 提供什么索引stmt->close()

这是好做法还是坏做法?

4

2 回答 2

3

是的,重用变量是可以的,甚至是很好的做法。

除此之外,您不认为一次又一次地使用所有这些代码是非常重复的吗?怎么样使用一个函数来做类似的事情

$row = function('SELECT ...', $params);
list($a, $b, $c) = function('SELECT ...', $another);
于 2013-09-03T18:34:57.017 回答
0

我认为这应该是一个好主意,但就您可以控制代码块的执行而言,如果 stmt->close() 由于某些错误而永远无法到达并且您开始一个新的集合,会发生什么情况。如果你能处理好这种情况和这些情况,那将是一个好主意。

于 2013-09-03T18:20:45.887 回答