我在代码中进行辅助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()
函数中的第四个参数,但它仍然不起作用。
今天早上我一直在捣乱我的大脑,试图弄清楚为什么这种联系不起作用(虽然我在其他地方做了一些非常相似的事情,而另一个第二个数据库确实有效)。任何帮助将不胜感激。
谢谢!
富
答案 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文件并指定缺少的选项即可。