Skocz do zawartości

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


Pomocna odpowiedź

Napisano (edytowany)

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

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.

 

 

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 ?

 

 

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).

 

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

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 😉

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ę.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...