首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: Mysql连接

PHP: Mysql连接
EN

Stack Overflow用户
提问于 2011-06-17 02:08:09
回答 4查看 154关注 0票数 1

我在一个网站上实现了一个脚本,他们不想让我访问他们的主数据库,所以他们为我做了第二个数据库。然而,在从index.php调用连接到我的数据库的函数之后(他们在那里有一个到他们的数据库的连接),看起来他们的连接丢失了。这是正常的吗?是否可以使用mysql_connect()建立第二个连接而不干扰第一个连接?顺便说一句,我从来不用mysql_close。

这是我的connect函数

代码语言:javascript
复制
 public function connect() {
        $link = mysql_connect('localhost', 'user', 'pwd');
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        mysql_select_db('database');

        return $link;
    }

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2011-06-17 02:14:07

PHP的mysql_系列函数都有一个可选的参数link,您可以在其中指定要用于给定函数的链接。在这里查看mysql_error的文档(作为示例):http://www.php.net/manual/en/function.mysql-error.php

问题是,许多在代码中直接调用mysql_connect而不是使用包装数据库类(或者更好的是,PDO)的新开发人员往往不会提供该可选参数。如果您没有给出link参数,那么函数将假定您想要使用最近创建的链接-在本例中是您的链接。

您可以在自己的函数中更正此遗漏:

代码语言:javascript
复制
 public function connect() {
        $link = mysql_connect('localhost', 'user', 'pwd');
        if (!$link) {
            die('Could not connect: ' . mysql_error($link));
        }
        mysql_select_db('database', $link);

        return $link;
    }

。。但这对项目的其余部分没有帮助,开发人员可能会在没有传递链接的情况下到处调用mysql_query,所以它将默认使用较新的链接。解决这个问题的最好方法是使用PDO进行额外的数据库访问,而不必修复所有其他代码。

即使其他开发人员正在传递link参数,也可能会影响代码的另一件事是,在调用mysql_connect时没有使用new_link参数。你基本上是在“窃取”他们的链接!如果他们总是小心地对mysql_query使用link参数,那么您可以使用new_link参数来确保您不会劫持他们的数据库连接:

代码语言:javascript
复制
 public function connect() {
        $link = mysql_connect('localhost', 'user', 'pwd', true);
        if (!$link) {
            die('Could not connect: ' . mysql_error($link));
        }
        mysql_select_db('database', $link);

        return $link;
    }
票数 2
EN

Stack Overflow用户

发布于 2011-06-17 02:13:55

当然,只要确保使用您创建$link变量,比如在mysql_select_db()调用、mysql_error()调用以及其他使用mysql_*函数的地方。

票数 1
EN

Stack Overflow用户

发布于 2011-06-17 02:14:58

查看post by sedativchunk。他创建了一个PHP类,允许您打开多个连接。但是,我自己还没有用过它。

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

https://stackoverflow.com/questions/6376527

复制
相关文章

相似问题

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