tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Problém, předávání parametrů COUNT

před 10 lety

symmetry
Člen | 71

Zdravím při volání fce:

public function CountPhotos($id) {

    $result = dibi::query('SELECT COUNT(*) FROM [tbl_photos] WHERE `id`=%i',$id);
    return  $result;
}

Dostávám hlášku:
Object of class DibiResult could not be converted to string:

A fci volám takto:

echo "<td>".$photo->CountPhotos($row->id)."</td>";

Kde $row->id, predstavuje zaznam pod sloupcem id fetchnuty ze selectu.

Netusi nekdo prosim, v cem by mohl byt problem?

Jelikoz tu samou chybu dostanu, i pokud tam dosadim natvrdo cislo.

Díky za každou radu.

před 10 lety

vlki
Člen | 218

Pracuješ s dibi špatným způsobem.

dibi::query, jak si můžeš přečíst v api, vrací jako výsledek DibiResult, což je jen výsledek dotazu od databázového serveru. Před použitím získaných dat, je ho potřeba zpracovat. Metody pro zpracování DibiResultu jsou typicky fetch nebo fetchAll.

Tvůj příklad by mohl vypadat nějak takto:

public function CountPhotos($id) {

        $result = dibi::query('SELECT COUNT(*) AS [count] FROM [tbl_photos] WHERE `id`=%i',$id);
        return $result->fetchSingle();
}

Důležité je to, že DibiResult obecně nic není. Je potřeba ho zpracovat pro získání dat. Proto ta chyba, že nejde konvertovat na řetězec.