2012-11-27 215 views
0

尝试连接到与我的网站不在同一主机上的数据库,并且没有太多的运气。该数据库是一个GoDaddy的主机上,我已将其配置为允许远程访问:PHP mysqli连接到远程数据库

$dbc = mysqli_connect($db_host,$db_user,$db_pass,$db_name); 

if (!$dbc) { 
    die('Connect Error: ' . mysqli_connect_error()); 
} 

,我得到页以下几点:

Warning: mysqli_connect() [function.mysqli-connect]: [2002] Connection timed out (trying to connect via ‘mydbhostname:3306) in ‘path’ on line 3

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): Connection timed out in ‘path’ on line 3

Connect Error: Connection timed out

什么我需要找我到底什么在可能导致这种情况的脚本中?

编辑:它似乎一切正常,当我使用MySQL,但不是mysqli ...和mysqli在服务器上启用。

+0

使用localhost,而不是如果是在同一台服务器上?它可能使用不同的端口吗? –

+1

这就是整个问题,它不在同一台服务器上。 – absentx

+1

你确定“mydbhostname”是你的数据库的uri吗? –

回答

-1

我不明白mysqli和mysql之间的区别,但我在GoDaddy上发现使用:

mysqli_connect不起作用。 mysql_connect可以工作。

尝试使用下面的示例代码,看看你是否可以连接到数据库,在至少一个表需要的数据:

<?php 
//Variables for connecting to your database. 
//These variable values come from your hosting account. 
$hostname = "XXXXXXX.db.XXXXXXXX.hostedresource.com"; 
$username = "XXXXXXX"; 
$dbname = "XXXXXXX"; 

//These variable values need to be changed by you before deploying 
$password = "XXXXXXX"; 
$usertable = "XXXXXXX"; 
$yourfield = "XXXXXXX"; 

//Connecting to your database 
mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
connect to database! Please try again later."); 
mysql_select_db($dbname); 

//Fetching from your database table. 
$query = "SELECT * FROM $usertable"; 
$result = mysql_query($query); 

if ($result) { 
    while($row = mysql_fetch_array($result)) { 
     $name = $row["$yourfield"]; 
     echo "<h2>some data</h2>"; 
     echo "$name<br>"; 
    } 
} 
?> 
+1

Godaddy不支持mysqli?这对我来说似乎不太可能。不过,我完全不同意推荐使用已弃用的ext/mysql。如果有的话,推荐使用PDO,但不能使用ext/mysql。 – Mike

+0

我在2016年遇到了这个相同的问题。使用phpInfo();在测试脚本中显示GoDaddy已安装mysqli。建立与数据库的连接工作正常,但尝试获取记录不能使用mysqli。他们的PHP版本是5.4.45。根据这个PHP页面,mysql_connect在版本5.5中被弃用。如果他们升级PHP版本,它会破坏网站。我建议创建mysql_connect和一个mysqli_connect块。然后检查服务器的PHP版本。当PHP> 5.5+时使用mysqli,当PHP <5.4x时使用mysql。 http://php.net/manual/en/function.mysql-connect.php – Clomp