Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zapytanie do bazy działa na localhost na linuxpl już nie
m72
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 25.12.2012

Ostrzeżenie: (0%)
-----


Witam wszystkich.
Powiedzcie mi czemu na localhoscie zapytanie do bazy działa a na linuxpl już nie.


  1. <?php
  2.  
  3. $db=new mysqli('localhost','user,'pass','baza');
  4. if (mysqli_connect_errno()){
  5. echo 'Błąd połączenia z bazą';
  6. exit;
  7. }
  8. echo '1','<br>';
  9. $zapytanie="select id_PRODUKT from PRODUKTY where PRODUKT like '%piwo%';";
  10. echo '2','<br>';
  11. $wynik=$db->query($zapytanie);
  12. echo '3','<br>';
  13. $ile_znalezionych=$wynik->num_rows;
  14. echo '4','<br>';
  15. for ($i=0; $i <$ile_znalezionych; $i++){
  16. echo '5','<br>';
  17. $wiersz=$wynik->fetch_assoc();
  18. echo '6','<br>';
  19. $nazwa=$wiersz['id_PRODUKT'];
  20. echo '7','<br>';
  21. echo $nazwa;
  22. echo '<br>','8','<br>';
  23. }
  24. echo '9','<br>';
  25. $wynik->free();
  26. echo '10','<br>';
  27. $db->close();
  28. echo '11','<br>';
  29.  
  30. ?>

Przyjmijmy ze baza na localu i linuxpl jest identyczna bo wydając polecenia z konsoli na linuxpl działa, ale za pośrednictwem pliku php już nie.
Łączę się przez PUTTY z linuxpl jako ten sam user co w skrypcie, uprawnienia do bazy też są pełne.
Nie działa także w takiej kombinacji że z "lokalnego" skryptu łączę się ze zdalną bazą na linux pl z tą różnicą że błędu nie wywala.
Na obrazkach widać do którego "echa" dochodzi skrypt .
Na localhoscie skrypt działa:

Na linuxpl nie:



Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Pokaż całość. Popraw kod, bo już Ci nawet kolorowanie mówi że jest źle. I brakuje obiektu do którego się odwołujesz.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
m72
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 25.12.2012

Ostrzeżenie: (0%)
-----


Jakbym wiedział co mam poprawić to bym to zrobił.
Kod jest żywcem przekopiowany oprócz haseł itp.
Z resztą na obrazkach widzisz ze on działa na lokalnym kompie
a na zdalnym nie. Nie bez powodu umieściłem temat w dziale przedszkole
bo jestem jak widać początkujący. Uwagi "popraw kod" nic nie wnoszą wiec
sobie daruj.

Go to the top of the page
+Quote Post
Szymciosek
post
Post #4





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Samo kodowanie, czyli widzisz, że kolorki się sypią: dokładniej tutaj $db=new mysqli('localhost','user,'pass','baza');


No i !*! ma rację, pokaż więcej kodu. Wywołujesz tutaj jakąś metodę free(), ale jej nie pokazujesz nam.
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Ktoś kto jest początkujący powinien znać podstawy o których mówi pierwszy lepszy kurs.

  1. $db=new mysqli('localhost','user,'pass','baza');

zamień na
  1. $db=new mysqli('localhost','user','pass','baza');


Zapewne to nie rozwiąże problemu, zwykła pomyłka przy kopiowaniu?
Na localhost nie widzisz błędu, bo jest wyłączone ich pokazywanie (sprawdź). error_reporting

Bezpośrednio w
  1. $wynik=$db->query($zapytanie);

nie ma
  1. $wynik->free();


więc jak chcesz się do tego odwołać, co to jest to free? I napisz z czego korzystasz.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
sowiq
post
Post #6





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Abra kadabra, czary mary, udzielam odpowiedzi.

Najprawdopodobniej na localhoście Twoje rozwiązanie działa, bo zapytanie zwraca jakieś rekordy, bo Twoja pętla się wykonuje - widać to po wyświetlonych cyferkach. Natomiast na serwerze wynik zapytania jest pusty, w magicznej bibliotece do obsługi bazy danych nie jest tworzony żaden obiekt, więc nie ma czego zwalniać z pamięci.

Tada nerdsmiley.png
Go to the top of the page
+Quote Post
Thorang Hoog
post
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 9
Dołączył: 8.02.2009

Ostrzeżenie: (0%)
-----


Wielkość liter jest identyczna w nazwach tabel?
Go to the top of the page
+Quote Post
m72
post
Post #8





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 25.12.2012

Ostrzeżenie: (0%)
-----


Dzięki wszystkim za podpowiedzi, jak wrócę z pracy to postaram się to wszystko jeszcze raz opisać ale dokładnie łącznie z samą bazą.
Co do "złych kolorków" to pewnie coś przy wklejaniu kodu na forum się psuje.



Problem rozwiązany (prawie) w linii 9 na samym końcu jest niepotrzebny średnik, myślałem że on ma być, tak jak to się klepie bezpośrednio w konsoli na zakończenie zapytania.
Pozostaje jednak pytanie dla czego to działało na lokalu a na zdalnym serwerze nie ! smile.gif Pytanie to może pozostać bez odpowiedzi wink.gif

Ten post edytował m72 7.05.2013, 23:08:17
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 09:07