Autor | Zpráva | ||
---|---|---|---|
Hologos Profil |
#1 · Zasláno: 12. 7. 2010, 15:06:30 · Upravil/a: Hologos
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 |
#2 · Zasláno: 12. 7. 2010, 15:16:00
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 |
#3 · Zasláno: 12. 7. 2010, 15:24:20
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 |
#4 · Zasláno: 12. 7. 2010, 15:27:11
možná by ti mohlo pomoct předání referencí
static function vyberJeden(&$resource) |
||
Hologos Profil |
#5 · Zasláno: 12. 7. 2010, 15:28:28
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 |
#6 · Zasláno: 12. 7. 2010, 15:29:51
Hologos:
Pořád nechápu, k čemu to je dobré. |
||
Hologos Profil |
#7 · Zasláno: 12. 7. 2010, 15:31:31 · Upravil/a: Hologos
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. |
||
Časová prodleva: 14 let
|
0