Loczek [ El Loco Boracho ]
PHP - problem
Witam,
Mam problem ze stroną pisaną w php i nie mam pojęcia o co może chodzić:/
Strona generalnie jest interfacem to bardzo prostej bazy danych. Baza danych (mysql) leży sobie na serwerze host.sk.
Kiedy odpalam strone na moim komputerze, łączy się z bazą bez problemu. Jednak po wrzuceniu na jakikolwiek serwer, nie może się z nią połączyć.
Ma ktoś pomysł w czym może być problem? W PHP stawiam pierwsze kroki i nawet nie wiem jak odpalić jakiegoś debuggera, więc jeśli to potrzebne to byłbym wdzięczny za instrukcje.
pozdrawiam i z góry dziękuje
Narmo [ nikt ]
Stawiam, że ustawiasz złe parametry przy łączeniu się z bazą danych na serwerze. Może zły adres, może zła nazwa użytkownika lub hasło, może próbujesz się połączyć z bazą danych, której nie utworzyłeś, może serwer nie pozwala się łączyć z bazą danych przez dokumenty, znajdujące się poza nim...
Loczek [ El Loco Boracho ]
Narmo: na lokalnym kompie łącze się używając dokładnie tych samych danych (innymi słowy testując strone na localhoscie dalej używam bazy na serwerze)
Narmo [ nikt ]
Jaki adres do bazy danych podajesz? localhost czy db.host.sk?
Loczek [ El Loco Boracho ]
@ $db = new mysqli('db.host.sk', 'login', 'haslo','nazwa_bazy' );
edit: może to wynikać z innych ustawień PHP na serwerze?
Narmo [ nikt ]
A spróbuj:
@ $db = new mysqli('db.host.sk:3306', 'login', 'haslo','nazwa_bazy' );
Loczek [ El Loco Boracho ]
Też próbowałem i to samo :/
EDIT: może ktoś coś wywnioskuje z kodu... Ale jak wspomniałem u mnie na kompie działa (u kolegi właśnie sprawdzaliśmy - też działa):
<html>
<head><meta content="text/html; charset=iso-8859-2" http-equiv="content-type">
<title>Health & Safety products - product price history</title>
</head>
<body>
<?php
echo '<h1>Health & Safety products - product price history</h1>';
// utworzenie krótkich nazw zmiennych
$id=$_GET['id'];
@ $db = new mysqli('db.host.sk:3306', 'xxxxx', 'xxxxx','mobiletech' );
if (mysqli_connect_errno())
‹
echo 'Error: cannot establish connection with the database. Try again later';
exit;
›
//select * from product where name like '%kask%'
$zapytanie = "select * from history where product_id =".$id."";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
echo '<p>Number of found positions: '.$ile_znalezionych.'</p>';
for ($i=0; $i <$ile_znalezionych; $i++)
‹
$wiersz = $wynik->fetch_assoc();
echo '<p><strong>'.($i+1).'. Date: ';
echo stripslashes($wiersz['date']);
echo '<br />Price: ';
echo stripslashes($wiersz['old_price']);
echo ' PLN';
echo '</p>';
›
echo '<img src="linegraph.php?id='.$id.'" />';
$wynik->free();
$db->close();
?>
</body>
</html>
Narmo [ nikt ]
Może serwer nie obsługuje polecenia mysqli?
$db = mysql_connect('db.host.sk:3306', 'login', 'haslo');
mysql_select_db('nazwa_bazy',$db);
Loczek [ El Loco Boracho ]
Narmo: zaraz spróbuje... Dobrze rozumuje że dla takiego obiektu będe musiał pozmieniać niektóre funkcje?
Narmo [ nikt ]
Tak. Gdybyś nie mógł się doszukać to tu masz listę:
Loczek [ El Loco Boracho ]
Wielki dzięki. Bez użycia obiektów wszystko działa :)
Loczek [ El Loco Boracho ]
A zna ktoś darmowy serwer php wspierający podejście obiektowe? :)