Autor Zpráva
TomAsQo
Profil
ahoj,
niesom sice upny zaciatocnik v programovani, ale aj tak neviem najst chybu ;( kde je?


function ts_get($query, $conn = $mysqli){
$res = $conn->query($query);
return $res->fetch_row()[0] || false;

}

bukaj
Profil
TomAsQo
Nevím, ale zdá se mi že tam je hned několik chybu v syntaxi.
1. v definici fce nemůžeš jako výchozí hodnotu proměnné určit jinou proměnnou.
2. ten return je udělaný celý nějaký divně. Co tam porovnáváš?

Zkus to takto:

function ts_get($query, $conn = NULL){
if($conn != NULL){
$res = $conn->query($query);
$row = $res->fetch_row();
if(!empty($row))
return $row[0];
else
return FALSE;
}else{
return FALSE;
}
TomAsQo
Profil
hoy :)
po malom googleni a po precitani tvojho komentara som zistil, ze
1) 1. v definici fce nemůžem jako výchozí hodnotu proměnné určit jinou proměnnou. ;-)
kazdopadne by ma zaujimalo, ako dat tej funkcii defaultnu hodnotu objekt Mysqli, aby som to nemusel stale pisat ako argument
2) PHP nepodporuje syntax $res->fetch_row()[index] :( ani celkovo $foo=funkcia()[index] :(
3) k tvojmu druhemu bodu:
operator || vracia prvy objekt, na ktory narazi a ma hodnotu true, inac vracia false(aspon v ostatnych jazykoch).
takze riadok return $res->fetch_row()[0] || false; by mal vratit v predoslej funkcii bud $res->fetch_row()[0] (ak by som nejaky vysledok), alebo hodnotu false ;)

ps, moja funkcia, napriek tym problemom vyzera takto:



function ts_get($query, Mysqli& $conn){
$res = $conn->query($query);

$row= $res->fetch_row() ||false;
return $row[0];//viem, ze skarede riesenie, ale co uz ;(

}

este by ma zaujimal ten prvy bod ;)
ale aj tak diky ;)
krteczek
Profil
pokud je to funkce a ne metoda tridy tak jedine pres globalni promennou,
pokud je to metoda tak asi v konstruktoru $this->db = $conn; nebo vytvorit metodu ktera zajisti propojeni s jinou tridou, pripadne pripojeni k db samostatne

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0