在很多场合,我使用的是超过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-> close()关闭它,我可以一遍又一遍地重用 stmt 对象吗这样我就不需要跟踪要提供给它的索引了什么变量stmt?
这是良好的做法还是不良做法?
答案 0 :(得分:3)
是的,重用变量是可以的,甚至是很好的练习。
除此之外,您是否认为一次又一次地使用所有这些代码是非常重复的?如何使用功能来制作像
这样的东西$row = function('SELECT ...', $params);
list($a, $b, $c) = function('SELECT ...', $another);
答案 1 :(得分:0)
我认为这应该是一个好主意,但是只要您可以控制代码块的执行,如果stmt-> close()由于某些错误而无法到达并且您启动一个新集合会发生什么。如果你能照顾到这种情况,这将是一个好主意。