Php 一次性连接MySQL服务器
我有几个PHP文件,每个文件都需要一个Mysql连接。然后我有一个带有mysql基本数据库查询的公共文件connect.php,我在Header.php中添加了这个文件 但值得关注的是,每次connect.php建立到DB的连接时(因为它包含在头文件中)。这将是有害的MySql服务器,我的应用程序很大,其中大约有200个表,20万个条目。我想通过php.ini实现DB连接,这意味着一旦配置了php.ini,就不需要在代码中的任何地方添加mysql_connect()查询。php.ini中只有一个设置。请解释我不熟悉php.ini的步骤 我的应用程序很大,其中大约有200个表,有20万个条目 那不是很大。然而,大量的表通常是一个很好的指标,表明您试图分割数据并破坏规范化 这意味着一旦配置了php.ini,就不需要在代码中的任何地方添加mysql_connect()查询 添加mysql_connect()真的有那么难吗?如果用户名/密码是在ini文件或自动添加前缀的包含文件中设置的,您甚至不需要显式设置它们。事实上,如果在include文件中封装db函数,则可以延迟连接:Php 一次性连接MySQL服务器,php,mysql,database,Php,Mysql,Database,我有几个PHP文件,每个文件都需要一个Mysql连接。然后我有一个带有mysql基本数据库查询的公共文件connect.php,我在Header.php中添加了这个文件 但值得关注的是,每次connect.php建立到DB的连接时(因为它包含在头文件中)。这将是有害的MySql服务器,我的应用程序很大,其中大约有200个表,20万个条目。我想通过php.ini实现DB连接,这意味着一旦配置了php.ini,就不需要在代码中的任何地方添加mysql_connect()查询。php.ini中只有一个
<?php
ini_set('mysql.default_user', 'scott');
ini_set('mysql.default_password','pussycat');
$GLOBALS['my_db_handle']=false;
function wrap_mysql_connect()
{
if (false===$GLOBALS['my_db_handle']) {
$GLOBALS['my_db_handle']=mysql_connect();
@mysql_select_db('my_preferred_db', $GLOBALS['my_db_handle']);
@mysql_set_charset('utf8', $GLOBALS['my_db_handle']);
}
return $GLOBALS['my_db_handle'];
}
function wrap_mysql_query($sql)
{
if (false===$GLOBALS['my_db_handle']) {
wrap_mysql_connect();
}
if (false===$GLOBALS['my_db_handle']) {
trigger_error(mysql_error());
return false;
}
$result=mysql_query($sql, $GLOBALS['my_db_handle']);
if (false === $result) {
trigger_error(mysql_error());
return false;
}
return result;
}
这无关紧要。除非您使用的是持久连接,否则您仍然会在每个请求上创建一个新连接。持久连接需要注意一些可能导致可用连接耗尽的警告。您无法通过php.ini连接到数据库。MySQL将完全能够处理许多请求。现在大多数时候我都面临着表崩溃的问题…PDO::\uu构造,在这种类型的连接中有帮助吗?表崩溃不太可能是由处理多个连接引起的。请记住使用mysqli.*
。