2011-01-13 190 views
10

我刚刚建立了一个MySQL数据库上的Web托管服务,我试图连接到远程,使用下面的PHP:远程连接到MySQL数据库

<?php 
//Connect To Database 
$hostname='113.101.88.97.ukld.db.5513497.hostedresource.com'; 
$username='myusername'; 
$password='mypassword'; 
$dbname='testdb'; 
$usertable='test'; 
$yourfield = 'lat'; 

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

$query = 'SELECT * FROM ' . $usertable; 
$result = mysql_query($query); 
if($result) { 
    while($row = mysql_fetch_array($result)){ 
     print $name = $row[$yourfield]; 
     echo 'Name: ' . $name; 
    } 
} 
else { 
print "Database NOT Found "; 
mysql_close($db_handle); 
} 
?> 

我很新的PHP和MySQL,我不明白一些事情。我已将上述代码保存在一个文件(称为demo.html)中,并尝试在我的Web浏览器中查看它(它目前不显示任何内容)。

我的托管公司告诉我,连接到数据库应该使用

ukld.db.5513497.hostedresource.com 

我认为我需要包括IP地址(我所看到的,当我登录使用phpMyAdmin),所以我补充说,也。但是,我不知道这是否结构正确。

$hostname='113.101.88.97.ukld.db.5510597.hostedresource.com'; 
+0

目前看起来没问题。怎么了? echo`mysql_error();`产生了什么? – 2011-01-13 18:12:12

回答

8

使用附带的域名ukld.db.5510597.hostedresource.com

与IP前面加上主机名,你正在做的只是改变主机名,这就是为什么它无法连接。

主机名将被转换为幕后的IP地址。不需要自己做。此外,硬编码IP是不好的做法,因为它们可以随时间变化。

2

号不要与主机名混合IP地址。你应该只使用主机名进行连接:

$hostname='ukld.db.5510597.hostedresource.com'; 
0

您不需要IP地址,只需使用您提供的域名即可。您的服务器将使用DNS将其解析为适当的IP。

3

无需IP地址试试这个

<?php 
//Connect To Database 
$hostname='ukld.db.5510597.hostedresource.com'; 
$username='myusername'; 
$password='mypassword'; 
$dbname='testdb'; 
$usertable='test'; 
$yourfield = 'lat'; 

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

$query = 'SELECT * FROM ' . $usertable; 
$result = mysql_query($query); 
if($result) { 
    while($row = mysql_fetch_array($result)){ 
     print $name = $row[$yourfield]; 
     echo 'Name: ' . $name; 
    } 
} 
else { 
print "Database NOT Found "; 
mysql_close($db_handle); 
} 
?> 
9

您需要使用要么主机名或IP地址,而不是两个。

如果你有一个命令行MySQL客户端可用,你可以测试你的连接字符串。

mysql -u myusername -p -h ukld.db.5510597.hostedresource.com -D testdb 

它应该会提示您输入密码。如果它连接成功,将这些设置传输到您的PHP应用程序!

2

主机名表示IP地址。
例如:stackoverflow.com代表IP 64.34.119.12。
如果你ping到stackoverflow.com IP 64.34.119.12会回答你。
这意味着主机可以是IP地址或主机名。
所以你应该尝试ukld.db.5510597.hostedresource.com或173.201.88.97。但不在一起。

顺便说一句,在大多数情况下,你不能从HTML文件运行PHP脚本,重命名文件扩展到PHP

祝你好运!

0

请勿将其另存为HTML文件。这是一个PHP文件。所以将它保存为demo.php。如果你已经将它保存为一个PHP文件,它应该指出错误的位置。