Skocz do zawartości

Połączenie z bazą danych na Raspberry Pi (LAMP) skrypt PHP


dan55

Pomocna odpowiedź

Witam.

Zainstalowałem środowisko LAMP na Rasberry Pi zero W z tego opisu : https://forbot.pl/blog/kurs-raspberry-pi-projekty-prosty-serwer-www-id27882 

Wszystko przebiegło bez problemów, loguję się z przeglądarki do bazy danych wpisując adres  malinki w sieci lokalnej: 192.168.0.63/phpmyadmin .

Natomiast problem jest z połączeniem z bazą przy próbie wpisania danych przez skrypt php z przeglądarki.

Jaką nazwę hosta trzeba wpisać aby poprawnie połączyć się z bazą? Próbowałem już wszystkiego: localhost, localhost:3306, lokalny adres ip malinki i nic.

Do połączenia stosuję poniższy kod znaleziony w sieci, oczywiście jako użytkownika, hasło i nazwę bazy wpisuję moje dane dostępowe :

<?php
$connection = @mysql_connect('localhost', 'uzytkownik', 'haslo')
or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
echo "Udało się połączyć z serwerem!<br />";
$db = @mysql_select_db('nazwa_bazy', $connection)
or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
echo "Udało się połączyć z bazą danych!";

    $ins = @mysql_query("INSERT INTO baza SET dana1='$dana1', dana2='$dana2'");

mysql_close($connection);
?>

Jakie parametry trzeba podać aby połączyć się z bazą danych w malince w sieci lokalnej?

Pozdrawiam.

Edytowano przez Gieneq
Zachęcam do używania bloku kodu
Link do komentarza
Share on other sites

No i co ten skrypt odpowiada? Brak połączenia z serwerem MySQL czy brak połączenia z bazą? To dość ważne...

Przy okazji: moduł mysql jest przestarzały i zachowany chyba tylko jako relikt z epoki PHP3.x (przypominam, że mamy 7.x), używaj mysqli.

 

 

Link do komentarza
Share on other sites

Problem w tym, że nie mam żadnej odpowiedzi. dodałem komendę echo "łączę"; przed $connection  i to mi jeszcze wyświetla, później nic.

Nie wiem czy połączyło z bazą danych czy nie. W bazie nie pojawiają się nowe dane w tabelkach.

Co powinienem wpisać w polu 'localhost' jeśli malinka jest w sieci lokalnej pod ip. 192.168.0.63 ?

 

 

Link do komentarza
Share on other sites

Powinno się zgłosić pod localhost.

Możesz spróbować skorzystać z konsoli mysql i sprawdzić, np. tak:

mysql -uużytkownik -hlocalhost -p

(tak, tam jest dwa razy u, pierwsze u to parametr a drugie to pierwsza litera słowa użytkownik)

Co do niewyświetlania: zaglądałeś może do logów Apacza, szczególnie do logów błędów?

Daj na początek programu coś takiego:

<?php
	ini_set('display_errors', 1);
	ini_set('display_startup_errors', 1);
	error_reporting(E_ALL);
/* i tu dopiero połączenie bez żadnych małp i orów */
	$connection = mysql_connect('localhost', 'uzytkownik', 'haslo');

A w ogóle ustaw sobie w php.ini wyświetlanie wszystkich błędów i ostrzeżeń (domyślnie jest wyłączone, żeby zamieść pod dywan wszelkie babole i nieumiejętności programisty, coby mógł się pochwalić swoim arcydziełem przed każdym przedszkolaczkiem albo innym handlowcem).

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

zmieniłem kod na coś: takiego:

<?php
// nawiazujemy polaczenie
$connection = @mysqli_connect('localhost', 'uzytkownik', 'hasło')
// w przypadku niepowodznie wyświetlamy komunikat
or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
// połączenie nawiązane 😉
echo "Udało się połączyć z serwerem!<br />";
// nawiązujemy połączenie z bazą danych
echo "łączę";
$db = @mysqli_select_db('test', $connection)
// w przypadku niepowodzenia wyświetlamy komunikat
or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
// połączenie nawiązane 😉
echo "Udało się połączyć z bazą dancych!";
// zamykamy połączenie
mysqli_close($connection);

?>

teraz łączy się z serwerem, natomiast nie łączy z bazą.

kończy na wyświetleniu: "łączę"

domontowałem kod wyłapujący błędy i wypluło dodatkowo:

Fatal error: Uncaught Error: Call to undefined function mysql_error() in /var/www/html/testy/myskuli.php:16 Stack trace: #0 {main} thrown in /var/www/html/testy/myskuli.php on line 16

Link do komentarza
Share on other sites

2 minuty temu, dan55 napisał:

zmieniłem kod na coś: takiego:

A na co miałeś zmienić?

Nikt tu nie siedzi przy twojej malince, jak nie wyświetlasz błędów to nikt telepatycznie nie będzie ich szukać. Albo zrobisz to co napisałem wcześniej (czyli włączysz wyświetlanie błędów i jeśli nie zrozumiesz to zapytasz), albo zasuwaj na forum wróżek i czarodziejów 🙂

Aha, nad tym okienkiem w którym piszesz masz takie coś z narysowanym znaczkiem "<>" i napisem "Wstaw kod". Zastanów się do czego on służy i zacznij używać, bo nasza tolerancja się kończy przy czwartym poście 😉

Link do komentarza
Share on other sites

Moja Mama ostrzegała mnie ... Nie siedź tyle przed tym monitorem, bo to nie zdrowe i staniesz się mniej tolerancyjny.

Teraz już wiem, że miała rację.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.