Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zapytania w php7 - mysqli_ nie wystarczy?
Forum PHP.pl > Forum > Przedszkole
bordovy
Witam.
Powoli muszę się zmierzyć ze zmianą na php7.
Właściciel serwera zapewniał mnie, że zmiana polegać ma w sumie na tym, że zamiast mysql_ będzie mysqli_

Na dzień dobry otrzymałem pierwszy strzał przy kodzie:
  1. $result = mysqli_query("SELECT * FROM my_config");
  2.  
  3. $r = mysqli_fetch_object($result);


pod tytułem:
Cytat
Warning: mysqli_query() expects at least 2 parameters, 1 given in .... on line 53

Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, null given in .... on line 55


Starałem się znaleźć coś po polsku, bo u mnie z angielskim trochę nie tego wink.gif ale nic z tego (przynajmniej narazie) nie wyszło. Ktoś odeśle mnie do manuala z pewnością, ale ja staram się to zrozumieć "po swojemu". Dlatego będę wdzięczny za poprawkę i odpowiedź.

Domyślam się tylko, że za niedługi czas całą stronkę szl... trafi, jeśli szybko nie zacznę wprowadzać zmian. Czyli prawdopodobnie cała stronka jest do przepisania na nowo (skok z 5.2 na 7-mkę).

Z góry bardzo dziękuję za odpowiedzi.

Pozdrawiam.
Star
  1. $con = mysqli_connect("localhost","my_user","my_password","my_db");
  2. $result = mysqli_query($con, "SELECT * FROM my_config");
  3.  
  4. $r = mysqli_fetch_object($result);
bordovy
Star bardzo dziękuję - chyba ok. Tzn na pewno OK, bo chwilowo mam białą stronę. Wszędzie muszę dokonaćzmian, bo w zasadzie wszędzie mam kody w stylu:
  1. $zap_rekordy = "SELECT * FROM rekordy WHERE status='0' ORDER BY rand() LIMIT 1";
  2. $wyn_rek = mysqli_query($zap_rekordy);
  3. while($r = mysqli_fetch_array($wyn_rekordy)) {
  4. $id = $r['id'];
  5. $code = $r['code'];
  6. }


Czy wszędzie mam tak podopisywać, jak podałeś? Miało być szybciej i bardziej wydajnie, a tu wszystko jest do przepisania sad.gif W sumie jest to coś ponad 700 plików do przejrzenia... Muszę się sprężać sad.gif
Star
Wcześniej podałeś jaki błąd Ci zwróciło zapytanie mysqli, a mianowicie, że potrzebuję przynajmniej dwóch parametrów, a dostało jeden. Jeśli chcesz się przenieść z mysql na mysqli to musisz zmienić wszystkie zapytania. Chociaż uważam że powinieneś od razu przerzucić się na PDO i myślę że tak też podpowie Ci większość innych użytkowników forum
bordovy
Szczerze mówiąc nie miałem jeszcze do czynienia z PDO. Nie wiem nawet co to jest i z czym się to je...

Jeśli chodzi o php to zatrzymałem się na 5.2, bo myślałem, że to mi wystarczy... A tu taki strzał... i to akurat teraz... sad.gif

Czyli mam rozumieć, że kod z mojego drugiego postu (rekordy) jest już ok?

WIELKIE dzięki za cierpliwość... ale sam widzisz, że "za chwilę" będę w poważnych opałach... A szkoda by było, bo stronka działa od 2004 roku sad.gif


//edit
1. Nadal próbuję z tym kodem (rekordy). Gdzieś wyczytałem, że jakieś zmienne muszą być w {}

2. Napisałem od nowa plik odpowiadający za połączenia z bazą/tabelami
http://wklej.to/jcaWS

lecz niestety mam błąd w linii 51 sad.gif
O co chodzi? sad.gif
Star
Moglbys wklejac jakie bledy wyskakuja ,byloby latwiej
  1. if(!$result = mysqli_query($con, " $query"))


Trzymasz zmienna w cudzyslowiu , mysle ze powinno byc

  1. if(!$result = mysqli_query($con, $query))


poza tym mysqli_num_rows , mysqli_fetch_array i mysqli_fetch_row nie potrzebuja dwoch parametrow ,wystarczy mysqli_fetch_array($result)
bordovy
Próbowałem już z tym wcześniej - nic... również biała strona. Pół nocy zarwane...

Gdzieś... coś... (szajse...)

//edit
W trakcie gdy dawałem odpowiedź i sprawdzałem na serv - edytowałeś posta smile.gif

ok - wszystko pozmieniałem, jak piszesz.... nadal "łajt sajt" sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.