首页
学习
活动
专区
圈层
工具
发布

mysql连接
EN

Stack Overflow用户
提问于 2009-07-06 07:05:39
回答 6查看 578关注 0票数 0

我正在使用此代码进行mysql连接

代码语言:javascript
复制
$con = mysql_connect("localhost:/var/lib/mysql/mysql.sock", "abc" , "xyz");
if (!$con)
{
    die('Could not connect: ');
}
mysql_select_db("database_name", $con);

我把这个文件放在我用来解析然后将数据存储在database.Now中的每个php文件的顶部。当原始站点关闭时,我的解析文件开始给出错误"Warning: mysql_connect():Too line in /home/clickindia/public_html/appuonline/db.php on line 2 many connections:“

我应该如何从这些errors.Do中拯救我的网站?你认为我应该使用mysql_close($con);但是如何以及在哪里?我在我的代码中使用模具是正确的,还是应该使用关闭等等,请帮助!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-06 08:18:14

你说你把这个连接代码放在“每个php文件的顶部”。

我的问题是:你会在一个页面上使用几个这样的文件吗?

如果是这种情况,那么对于一个页面,您应该只打开一次连接。这可能是错误的解释。

Artem的建议也是中肯的。

票数 1
EN

Stack Overflow用户

发布于 2009-07-06 07:10:26

这真的是一个系统管理员的问题--你应该联系你的系统管理员。如果您有专用的web主机和管理其配置的专用数据库主机,则有两种显而易见的解决方案:

  1. 增加应用程序的

使用量

在每个页面上连接的Web服务器可以使用很多。

票数 1
EN

Stack Overflow用户

发布于 2009-07-07 10:55:40

您可能想要考虑在数据库访问周围包装一个单例。好处:

  • 您只能使用一个connection.
  • You仅在需要时打开连接(而不是在每个页面上任意连接)。

您可以使用自己的单例,也可以从框架中获取单例,但根据您正在做的工作,这可能有些夸张。基本情况是这样的:

代码语言:javascript
复制
class DatabaseAccess {
     private static $instance;
     private $connection;

     //declare the constructor private so we can only use it in this class
     private function __construct( $host, $user, $pass, $db ) {
         $this->connection = mysql_connect( $host, $user, $pass );
         mysql_select_db( $db, $this->connection );
     }

     //provide access to a single instance
     public static function instance() {
         if ( ! isset( self::$instance ) ) {
             self::$instance = new DatabaseAccess('host', 'user', 'pass', 'db');
         }
         return self::$instance;
     }

     //functions to execute/query the db
     public function query( $query ) {
         return mysql_query( $query, $this->connection );
     }

}

如果我要走这条路,我可能会通过控制对mysqli实例的访问并直接使用它来实现,而不是包装mysql_*函数。你可以在维基百科上找到更多关于单例模式的信息。

然后,您的应用程序将使用该类,如下所示:

代码语言:javascript
复制
$dba = DatabaseAccess::instance();
$result = $dba->query('select * from pages');
mysql_fetch_assoc($result);
//blah blah blah

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1085757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档