2011-01-13 33 views
10

Właśnie utworzenia bazy danych MySQL na usługi hostingiem i staram się z nią połączyć zdalnie za pomocą następującego PHP:zdalnego łączenia się z bazą danych 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); 
} 
?> 

jestem całkiem nowego do php i MySQL, i nie rozumiem kilku rzeczy. Zachowałem powyższy kod w pliku (zwanym demo.html) i próbuję go przeglądać w mojej przeglądarce (obecnie nic nie wyświetla).

Moja firma hostingowa powiedział mi, że aby połączyć się z bazą danych należy użyć

ukld.db.5513497.hostedresource.com 

Przypuszczałem, że muszę zawierać adres IP (co widzę, kiedy mogę się zalogować przy użyciu phpMyAdmin), więc dodałem, że również. Jednak nie wiem, czy jest to poprawnie zbudowane.

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

Wygląda dobrze do tej pory. Co się dzieje? Co daje "echo mysql_error();"? –

+0

Dziękuję wszystkim; lekcja się nauczyła! :) – djq

Odpowiedz

8

pomocą dostarczonego nazwę domeny ukld.db.5510597.hostedresource.com

poprzedzenie nazwę hosta z adresu IP, jak robisz zmienia tylko nazwę hosta i dlatego nie udaje się połączyć.

Nazwa hosta zostanie za ciebie przekonwertowana na adres IP. Nie musisz robić tego sam. Dodatkowo, twarde adresy IP to zła praktyka, ponieważ mogą się zmieniać z biegiem czasu.

2

No. Nie mieszać adresy IP z nazwami hostów. należy podłączyć przy użyciu tylko nazwę hosta:

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

Nie potrzebujesz adresu IP, po prostu użyj nazwy domeny, którą otrzymałeś. Twój serwer użyje DNS do rozwiązania go na prawidłowy adres IP.

3

Nie potrzeba adresu IP Spróbuj

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

Trzeba użyć albo nazwę hosta lub adres IP, a nie obu.

Jeśli masz dostęp do klienta MySQL z linii poleceń, możesz przetestować ciągi połączeń.

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

Powinien następnie poprosić o podanie hasła. Jeśli połączenie uda się pomyślnie przenieść te ustawienia do aplikacji PHP!

2

Nazwa hosta reprezentuje adres IP.
na przykład: stackoverflow.com reprezentuje IP 64.34.119.12.
jeśli wyślesz ping do stackoverflow.com, adres IP 64.34.119.12 odpowie.
Oznacza to, że hostem może być adres IP lub nazwa hosta.
Powinieneś więc spróbować ukld.db.5510597.hostedresource.com lub 173.201.88.97. ale nie razem.

BTW, w większości przypadków nie można uruchomić skrypt PHP z pliku html, zmienić nazwę rozszerzenia pliku do php

Powodzenia!

0

Nie zapisuj go jako pliku HTML. To jest plik PHP.Zapisz więc jako demo.php. Powinien był wskazać, gdzie znajduje się błąd, jeśli zapisałeś go jako plik PHP.

Powiązane problemy