我真的需要做mysql_close()吗?为什么或者为什么不?
是否有触发器在mysql_connect之后关闭链接,即使我不执行mysql_close?
我使用延迟连接来连接我的DB对象中的数据库.这基本上意味着它不会调用mysql_connect(),直到第一个查询被传递给它,然后它随后跳过重新连接.
现在我在我的DB类中有一个方法,disconnectFromDB()它调用了几乎所有的调用mysql_close()和设置$_connected = FALSE(因此该query()方法将知道再次连接到DB).应该在每次查询之后(作为私有函数)还是在外部通过对象调用...因为我在想类似的东西(代码只是一个例子)
$students = $db->query('SELECT id FROM students');
$teachers = $db->query('SELECT id FROM teachers');
Run Code Online (Sandbox Code Playgroud)
现在,如果它在每次查询后关闭,那么这会减慢很多,而不是我只是将这一行添加到最后
$db->disconnectFromDB();
Run Code Online (Sandbox Code Playgroud)
或者我应该在页面的最后包含上面的那一行?
有哪些优点/缺点?什么在你的情况下最有效?除了性能损失之外,忘记关闭mySQL连接有什么问题吗?
感谢您花时间回答.
谢谢!
我总是假设关闭数据库连接始终是一个好习惯,无论数据库/ ORM如何,如mysql_close(),Propel :: close()等.
参考我的其他的一个问题,并在互联网上其他一些研究,我认识了一个令人惊讶的面孔,大多数人建议,如果你的连接紧密连接始终被请求后关闭并不重要.
但是我发现这些答案很难消化.原因是,为什么所有DB lib,ORM都提供close方法?如果它存在,在每个ORM/lib中,必须有一些很好的使用它.
有人可以说明在什么情况下,我们应该用close方法关闭数据库连接?如果这些方法根本没用,为什么它们存在于所有db libs/ORM中?
编辑
我的结论
这是Bondye和Fluffeh之间的一次很好的讨论,它清除了我对使用连接关闭的疑虑.感谢他们两个.
我真的很难接受一个答案,因为答案都是正确的.只需接受所有评论的回答,以便保持最佳状态.但+1正确答案.
我是首发.
我想知道如果我们不关闭MySQL连接会发生什么.
1-如果我们不关闭它们,是否可以打开多个数据库?我的意思是我们可以同时打开多个数据库吗?
2-关闭数据库是否会提高速度?
3-是否需要关闭数据库或它是可选的?
看看这段代码.我不使用"mysql_close()"所以我不会在每次请求后关闭数据库.这个PHP页面有很多请求.也许每分钟50000.我想知道关闭数据库是否需要此代码或没有?
<?php
//Include the file that lets us to connect to the database.
include("database/connection.php");
//Call "connect" function to connect to the database.
connect("database", "localhost", "root", "", "user");
//The GPRS module send a string to this site by GET method. The GPRS user a variable named variable to send the string with.
$received_string = $_GET["variable"];
//Seprates data in an array.
$array_GPRS_data = explode(",", $received_string);
//we need to remove the first letter.
$array_GPRS_data[9] = substr($array_GPRS_data[9], 1);
$array_GPRS_data[13] …Run Code Online (Sandbox Code Playgroud) 人们在早期使用MySQL时所学到的一些事情,即在使用后立即关闭连接很重要,但为什么这么重要呢?那么,如果我们做一个网站,它可以节省一些服务器资源(如描述在这里),但为什么我们应该做的是在.NET桌面应用程序?它是否与Web应用程序共享相同的问题?或者还有其他人吗?