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.

Předmět Autor Datum
$res = mysqli_query($this->db, "select id from {$this->tab}token where token='{$token}'", MYSQL_ASSO… nový
navay 01.12.2011 04:05
navay
Ďakujem, tvoja pomoc bola veľmi dobrá. Trápil som sa s tým pol dňa. To je tak, keď som to v rýchlost… poslední
msx. 01.12.2011 15:41
msx.

Ďakujem, tvoja pomoc bola veľmi dobrá. Trápil som sa s tým pol dňa. To je tak, keď som to v rýchlosti napísal a neuvedomil som si, že do nesprávneho riadku. Čo sa týka MYSQLI_ASSOC a MYSQL_ASSOC, z funkčného hľadiska je to jedno.

Ale avatar by som ti zakázal, môže mýliť ostatných. ;-)

V každom prípade hodnosť radca by si si zaslúžil.

Zpět do poradny Odpovědět na původní otázku Nahoru