MySQL连接尝试在5.2.9中工作正常但在5.3.0中没有 - 帮助?

时间:2010-05-12 07:59:09

标签: php mysql database-connection php-5.3

我在代码中进行辅助MySQL连接(到单独的外部数据库)时遇到问题。它在PHP 5.2.9中工作正常但在PHP 5.3.0中无法连接。我知道(至少有一些)在较新版本的PHP中成功建立MySQL连接所需的更改,并且之前已经成功,所以我不确定为什么它不能正常工作。

我已经有一个对本地数据库开放的数据库连接。下面的此函数用于与单独的远程目录建立额外的连接。包含的配置文件只包含外部数据库详细信息(主机,用户,传递和名称)。我已经检查过,它被正确包含在内。

function connectDP() {
    global $dpConnection;

    include("secondary_db_config.php);
    $dpConnection = mysql_connect($dp_dbHost, $dp_dbUser, $dp_dbPass, true) or DIE("ERROR: Unable to connect to Deployment Platform");
    mysql_select_db($dp_dbName, $dpConnection) or DIE("ERROR 006: Unable to select Deployment Platform Database");
}

然后我尝试通过外部调用此函数来创建这个新连接:

connectDP();

但是当加载页面时(在5.3.0中),我收到消息:

ERROR: Unable to connect to Deployment Platform

我使用可选的new_link标志布尔值作为mysql_connect()函数中的第四个参数,但它仍然不起作用。

今天早上我一直在捣乱我的大脑,试图弄清楚为什么这种联系不起作用(虽然我在其他地方做了一些非常相似的事情,而另一个第二个数据库确实有效)。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

自PHP 5.3起,它默认使用自己的MySQL驱动程序(mysqlnd),而不是libmysqlclient。根据平台,它无法从MySQL的配置文件中读取默认值(例如/etc/mysql/my.cnf)。您需要编辑php.ini并指定您使用的扩展名的默认值(mysql,mysqli,pdo)。例如,在Debian中,您需要在INI文件中自己指定套接字的路径(例如/var/run/mysqld/mysqld.sock)。只需浏览INI文件并指定缺少的选项即可。