Php 一次性连接MySQL服务器

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文件,每个文件都需要一个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
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.*