Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP+MySQL - problém s resource MySQL

Už som zúfalý a nedokážem si vysvetliť istú anomáliu, ktorá sa mi začala prejavovať pred pár hodinami (dovtedy bolo všetko v poriadku). Nepomohol ani reštart systému.

V kóde mám niečo takéto:

$res = mysqli_query($this->db, "select id from {$this->tab}token where token='{$token}'", MYSQL_ASSOC);
$rec = mysqli_fetch_array($res);
Neskôr v kóde nasleduje toto:
mysqli_fetch_array(mysqli_query($this->db, "select * from {$this->tab}{$table} where `{$column}`='{$id}'"), MYSQL_ASSOC);
Tento kód sa nachádza vo funkcii, ktorú volám s nejakými parametrami (nie je to podstatné).

Pred prvým kódom je pár MySQL funkcií, ktoré fungujú, medzi uvedenými príkazmi tiež a za druhým je jeden SQL insert.

Po prechode interpretra týmto kódom dostávam hlášku, týkajúcu sa prvého kódu:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\... on line 251
Je to preto, lebo premenná $res je z mne neznámeho dôvodu prázdna. Vypísal som si totiž $this->db, či náhodou niekde nemažem pripojenie na databázu, ale pripojenie je korektné. Takisto príkazy za týmto nasledujúce sa vykonávajú cez to isté pripojenie na databázu bezchybne. Skúsil som teda len tak pre "srandu" zmeniť názov premennej $res len v prvom kóde na $res0 a vtedy som dostal také isté chybové hlásenie, ale aj pre druhý uvedený kód. Keď som názov zmenil naspäť, tak mi to chybu hádzalo opäť len pre prvý kód. Všimol som si, že problémy sa týkajú výhradne SQL príkazov select, čo si neviem vysvetliť, aj to nie všetkých. Stretol sa niekto s niečím podobným? Akým spôsobom to mám riešiť? Posledná možnosť je skúsiť to cez hosting, ale nechce sa mi s tým už babrať a zrejme to dnes nechám tak. Okrem toho, potrebujem scripty testovať na locale.

Doplnené 1: Hosting robí to isté, zrejme sa budem musieť na to vyspať a testovať to riadok po riadku.

Doplnené 2: Niečo podobné som videl vtedy, keď bolo zle nadefinované pripojenie na databázu.

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny