Autor | Zpráva | ||
---|---|---|---|
Peet Profil |
Dobrý den, potřebuji vědět jak nahradit funkci ze starého mysql_result při použití oop mysqli ?
$result->result(); // neexistuje Nevite nekdo jak tento problem resit ? Potrebuji to kdyz treba zjistuji pocet zaznamu z urcite tabulky napr SELECET COUNT(id). .. apod.
Nebo když potřebuji otevřít jen jeden záznam tudíž na jeden řádek kódu nejlépe.. |
||
YoSarin Profil |
#2 · Zasláno: 26. 2. 2013, 19:41:45
Peet:
Pokud přecházíš na OOP mysqli, zkus zvážit jestli raději nepřejít na PDO. Jinak mysqli->query() vrací při úspěchu instanci mysqli_result, která má metody fetch_* , které by tě mohly zajímat...
|
||
Peet Profil |
#3 · Zasláno: 26. 2. 2013, 20:42:52
Ano viděl jsem i PDO ale spíš bych chtěl pomalu přecházet kompletně na OOP a jako řešení se mi zdá že když budu pomalu poznávat mysqli pochopím v závěru i celkovou podstatu toho všeho. Takže se Vás zeptám jak byste nahradil tento řádek za pomoci mysqli
$result=mysql_result(mysql_query("SELECT authorName FROM authors WHERE id=20"),0); //příklad |
||
juriad Profil |
#4 · Zasláno: 26. 2. 2013, 20:54:42
$query = "SELECT authorName FROM authors WHERE id=20"; if ($result = $mysqli->query($query)) { /* fetch associative array */ if ($row = $result->fetch_assoc()) { echo $row["authorName"]; } /* free result set */ $result->free(); } Může se ti zdát, že pomocí mysql_result snadněji napíšeš vytažení jediné hodnoty, ale na druhou stranu, většinou chceš v OOP světě vytáhnout celého autora, se vším všudy a ne jen jeho jméno. |
||
Peet Profil |
#5 · Zasláno: 26. 2. 2013, 21:17:11
Ok děkuji, mrknu na to. Jen proč všude ty ify ? jen proto kdyby to náhodou zkolabovalo ?...
|
||
Joker Profil |
#6 · Zasláno: 26. 2. 2013, 21:23:09
Peet:
„Jen proč všude ty ify ?“ Protože mysqli::query pro SELECT dotaz vrací buď result, nebo false (v případě chyby). Což by skript měl řešit (jinak, než aby to vzápětí spadlo na chybě s voláním neexistující metody). |
||
Peet Profil |
#7 · Zasláno: 27. 2. 2013, 17:02:41
a co když chci třeba vyhodnotit pouze COUNT ??
|
||
Someone Profil |
#8 · Zasláno: 27. 2. 2013, 17:08:32
Peet:
Použiješ alias: SELECT COUNT(*) AS pocet |
||
Peet Profil |
#9 · Zasláno: 27. 2. 2013, 17:18:12
a pote zase fetch_assoc() a potom k nemu dojdu $row['pcoet'] ??
|
||
Someone Profil |
#10 · Zasláno: 27. 2. 2013, 17:19:10
Peet:
ano, nebo místo fetch_assoc můžeš použít fetch_object a přistoupit k tomu jako $row->pocet. |
||
Peet Profil |
#11 · Zasláno: 27. 2. 2013, 17:33:42
jojo dekuji. jeste bych se chtel zeptat na jednu vec... ucim se z knihy a tam jsou treba tuzne priklady a videl jsem to i jinde ale vetsinou v knihach se pouziva funkce close() je jedno jestli v oop nebo obecne nebo funkce exit() k cemu slouzi nikdy jsem je nepotreboval..
predem diky |
||
juriad Profil |
Zkus ve větách použít sem tam nějakou čárku. Absolutně ti nerozumím.
|
||
Peet Profil |
#13 · Zasláno: 27. 2. 2013, 18:41:21
k čemu se používají fce exit nebo close ?
|
||
juriad Profil |
#14 · Zasláno: 27. 2. 2013, 19:13:22
exit je to samé co die, ukončuje vykonávání skriptu. Používá se obvykle po přesměrování, porovnej:
if (isset($_GET["presmeruj"])) { header("Location: b.html"); exit(); } echo "toto se vypíše, jen když se nepřesměruje"; if (isset($_GET["presmeruj"])) { header("Location: b.html"); } echo "toto se vypíše vždy, ale kvůli přesměrování si toho nevšimneš"; Funkci close neznám a myslím, že nejsem sám; nemyslíš náhodou mysql_close? Ta uzavře spojení s mysql. Umožní snížit nároky skriptu, když víš, že mysql už dále nebudeš potřebovat. |
||
Peet Profil |
#15 · Zasláno: 27. 2. 2013, 19:25:03
Ok děkuji jojo ten rozdíl v tom exitu je ale osobne mi neprijde jako nejak extremne potrebny.
zde jsem našel close: jde o mysqli a nějaké stmt.. ještě jsem to pořádně nestudoval k čemu je to stmt. ale je tam prostě nějaký kus kódu a na konci $stmt->close();
|
||
Časová prodleva: 11 let
|
0