【发布时间】:2016-08-03 05:17:12
【问题描述】:
我正在尝试将我的 codeigniter 框架连接到外部数据库。但它显示错误
发生数据库错误无法连接到您的数据库服务器 使用提供的设置。文件名:core/Loader.php 行号: 346
然后,我将这个插入到 config/database.php 的末尾
echo '<pre>';
print_r($db['default']);
echo '</pre>';
echo 'Connecting to database: ' .$db['default']['database'];
$dbh=mysql_connect
(
$db['default']['hostname'],
$db['default']['username'],
$db['default']['password'])
or die('Cannot connect to the database because: ' . mysql_error());
mysql_select_db ($db['default']['database']);
echo '<br /> Connected OK:' ;
die( 'file: ' .__FILE__ . ' Line: ' .__LINE__);
但它显示
遇到 PHP 错误 严重性:8192 消息:mysql_connect():不推荐使用 mysql 扩展并将 将来被删除:改用 mysqli 或 PDO 文件名:config/database.php 行号:79
遇到 PHP 错误 严重性:警告 消息:mysql_connect():无法连接到 MySQL 服务器 '167.114.xxx.xxx' (111) 文件名:config/database.php 行号:79
无法连接到数据库,因为:无法连接到 MySQL 服务器 在'167.114.xxx.xxx'(111)
然后我尝试在 codeigniter 目录之外创建这个(在 public_html 中)
<?php
$servername = "167.114.xxx.xxx";
$username = "myusername";
$password = "dbpass";
$database = "dbname";
// Create connection
$conn = mysql_connect($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
它显示连接成功。所以我该怎么做?而 config/database.php 中的 db 详细信息与上面相同
【问题讨论】:
-
您在codeigniter外部尝试的连接是在同一台服务器上吗?您确定 MySQL 服务器正在接受外部连接并且用户具有正确的权限吗?
-
警告:您使用的 an obsolete database API 已从最新版本的 PHP 中删除。你应该使用modern replacement。
-
@BeoWulf 是的,我尝试的连接与 codeigniter 在同一台服务器上。如果它没有接受外部连接的权限,那么第二个如何给出输出“连接成功”
-
@YudhistiraBayu 它给出了“连接成功”,因为您使用了错误的方法。
->connection_error属性仅适用于 MySQLi,不适用于(已弃用的)MySQL lib。因此,永远不会有$conn->connect_error,因此条件永远不会为真。你的权利是if(!$conn)。最正确的是切换到 MySQLi 或 PDO。请参阅下面的答案以了解正确的方法。
标签: php mysql database codeigniter