Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zapytania w php7 - mysqli_ nie wystarczy?
bordovy
post 1.04.2016, 00:15:01
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.11.2015

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Star
post 1.04.2016, 00:21:33
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


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


Ten post edytował Star 1.04.2016, 00:21:55
Go to the top of the page
+Quote Post
bordovy
post 1.04.2016, 00:34:55
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.11.2015

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


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
Go to the top of the page
+Quote Post
Star
post 1.04.2016, 00:41:23
Post #4





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


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
Go to the top of the page
+Quote Post
bordovy
post 1.04.2016, 00:47:24
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.11.2015

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


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

Ten post edytował bordovy 1.04.2016, 06:36:58
Go to the top of the page
+Quote Post
Star
post 1.04.2016, 07:37:57
Post #6





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


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)

Ten post edytował Star 1.04.2016, 07:44:51
Go to the top of the page
+Quote Post
bordovy
post 1.04.2016, 07:49:03
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.11.2015

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


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

Ten post edytował bordovy 1.04.2016, 07:51:38
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:39