Autor Zpráva
Hologos
Profil
Zdravím,
mám tento problém.

Mám funkci vyberJeden($resource), který jako parametr dostane resource z předchozího dotazu, který mi vrátí pouze jeden záznam.
Problém je v tom, že ten resource to nezruší a můžu k němu dál přistupovat a to bych nechtěl.

Potřeboval bych něco jako
$resource = MySQL::SELECT('SELECT * FROM tabulka'); // Vrátí resource s 200 záznamy.
$result = MySQL::vyberJeden($resource);
echo $result['nazev']; // Vypíše "Marek"
$result = MySQL::vyberJeden($resource); // Tady potřebuji, aby ten resource už nebyl platný -> vyhodí se vyjímka.
echo $result['nazev']; // Vypíše "Petr"


Potřeboval bych ho v té mé funkci nějak znevalidnit.
Joker
Profil
Hologos:
ten resource to nezruší a můžu k němu dál přistupovat a to bych nechtěl
Proč, k čemu to má být dobré?

V první řadě, k čemu vybírat z tabulky 200 záznamů, pokud chci jeden?
Hologos
Profil
Jde o to, že ten parametr $resource není povinný, takže pokud není uveden, prohledá se proměnná self::resource, a pokud není prázdná, tak se použije.

Je to tak, že ta funkce může dostat buď resource nebo query string, do query stringu dopisuji LIMIT 1, ale u existujícího resource už to neovlivním.
Step
Profil
možná by ti mohlo pomoct předání referencí
static function vyberJeden(&$resource)
Hologos
Profil
Už jsem na to asi přišel.
Stačí zavolat v té vnitřní funkci mysql_free_result($resource) a smažou se data.
Joker
Profil
Hologos:
Pořád nechápu, k čemu to je dobré.
Hologos
Profil
To ani nemusíš.. ;)
Ten kód, co jsem uvedl výše, samozřejmě nepoužívám, je to zbytečnost vybírat 200 záznamů. Byla to pouze ilustrace.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: