您应该在循环内部还是在循环外部打开/关闭数据库连接?

use*_*637 1 php mysql

将PDO与准备好的语句一起使用(我从这里学到:http://www.kitebird.com/articles/php-pdo.html)我正在使用一个打开数据库连接的函数:

function testdb_connect ()
{
   $dbh = new PDO("mysql:host=localhost;dbname=test", "testuser", "testpass");
   return ($dbh);
}
Run Code Online (Sandbox Code Playgroud)

我有一个for循环,迭代并在表中插入行.我应该在循环之前打开连接并在循环结构之后关闭它

$dbh = testdb_connect();
for($i=0; $i<$number_of_values; $i++){
    //Insert rows
}
$dbh = NULL   ;
Run Code Online (Sandbox Code Playgroud)

或者我应该在每个插入语句的循环内打开和关闭它?每种方法的优缺点是什么?

for($i=0; $i<$number_of_values; $i++){
    $dbh = testdb_connect();
    //Insert rows
    $dbh = NULL   ;
}
Run Code Online (Sandbox Code Playgroud)

sch*_*haz 7

由于任何打开或关闭数据库或文件的调用都会产生很大的开销,为了提高效率,我会在循环之前打开数据库,并在循环完成时关闭.


dec*_*eze 6

为整个脚本打开一次连接.打开连接有一定的开销,重新打开连接绝对没有优势.因此,要尽可能高效,请在脚本开头打开一次,最后关闭它.在循环内打开和关闭它是无稽之谈.