2011-01-13 38 views
10

Tôi vừa mới thiết lập một cơ sở dữ liệu MySQL trên một dịch vụ web-hosting và tôi đang cố gắng để kết nối đến nó từ xa bằng cách sử dụng php sau:từ xa kết nối với một cơ sở dữ liệu 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); 
} 
?> 

Tôi khá mới cho php và MySQL, và tôi không hiểu một vài điều. Tôi đã lưu mã trên trong một tệp (gọi là demo.html) và tôi thử xem nó trong trình duyệt web của tôi (nó hiện không hiển thị bất cứ điều gì).

công ty lưu trữ của tôi nói với tôi rằng để kết nối với cơ sở dữ liệu tôi nên sử dụng

ukld.db.5513497.hostedresource.com 

Tôi cho rằng tôi cần phải bao gồm địa chỉ IP (những gì tôi thấy khi đăng nhập sử dụng PHPMyAdmin), vì vậy tôi nói thêm rằng cũng thế. Tuy nhiên, tôi không biết liệu điều đó có được cấu trúc đúng hay không.

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

Có vẻ ổn cho đến nay. Chuyện gì xảy ra? 'Echo mysql_error();' yield là gì? –

+0

Cảm ơn tất cả mọi người; bài học kinh nghiệm! :) – djq

Trả lời

8

Sử dụng tên miền cung cấp ukld.db.5510597.hostedresource.com

prepending các hostname với IP như bạn đang làm chỉ thay đổi tên máy và đó là lý do tại sao nó là không để kết nối.

Tên máy chủ sẽ được chuyển đổi thành địa chỉ IP phía sau hậu trường cho bạn. Không cần phải tự mình làm. Ngoài ra, các IP cứng là thực hành không tốt vì chúng có thể thay đổi theo thời gian.

2

Bạn không cần phải bao gồm địa chỉ IP

2

số Không trộn lẫn các địa chỉ IP với tên máy chủ. Bạn nên kết nối bằng cách sử dụng chỉ là hostname:

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

Bạn không cần địa chỉ IP, chỉ cần sử dụng tên miền bạn đã được cung cấp. Máy chủ của bạn sẽ sử dụng DNS để giải quyết nó cho đúng IP.

3

Không cần cung cấp địa chỉ IP Hãy thử điều này

<?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

Bạn cần phải sử dụng một trong hai tên máy hoặc địa chỉ IP, không phải cả hai.

Nếu bạn có một máy khách MySQL dòng lệnh có sẵn cho bạn, bạn có thể kiểm tra chuỗi kết nối của mình.

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

Sau đó, mật khẩu sẽ nhắc bạn nhập mật khẩu của bạn. Nếu nó kết nối thành công chuyển các cài đặt đó vào ứng dụng PHP của bạn!

2

Tên máy chủ đại diện cho địa chỉ IP. Ví dụ:
: stackoverflow.com đại diện cho IP 64.34.119.12.
nếu bạn ping tới stackoverflow.com, IP 64.34.119.12 sẽ trả lời bạn.
Điều đó có nghĩa là máy chủ có thể là, địa chỉ IP hoặc tên máy chủ.
Vì vậy, bạn nên thử dùng ukld.db.5510597.hostedresource.com hoặc 173.201.88.97. nhưng không cùng nhau.

BTW, trong hầu hết các trường hợp, bạn không thể chạy tập lệnh PHP từ tệp html, đổi tên tiện ích mở rộng tệp thành php

Chúc may mắn!

0

Không lưu tệp dưới dạng tệp HTML. Nó là một tập tin PHP.Vì vậy, lưu nó như là demo.php. Nó sẽ chỉ ra nơi mà lỗi là nếu bạn đã lưu nó như là một tập tin PHP.

Các vấn đề liên quan