Jak na jednoduchý select?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kloban
Člen | 123
+
0
-

Mám tento select do databáze, který mi vybere jednu jedinou číselnou hodnotu.

$id_objednavky = $this->database->table('objednavka')
	->select("id")
	->where("id_stul", 1)
	->where("zaplaceno", 0)
	->limit(1);

Proč mi to po zavolání:

print_r($id_objednavky);

vypíše toto všechno:

Nette\Database\Table\Selection Object
(
    [connection:protected] => Nette\Database\Connection Object
        (
            [onConnect] =>
            [onQuery] => Array
                (
                    [0] => Array
                        (
                            [0] => Nette\Database\Diagnostics\ConnectionPanel Object
                                (
                                    [maxQueries] => 100
                                    [totalTime:Nette\Database\Diagnostics\ConnectionPanel:private] => 0.00035881996154785
                                    [count:Nette\Database\Diagnostics\ConnectionPanel:private] => 1
                                    [queries:Nette\Database\Diagnostics\ConnectionPanel:private] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [0] => Nette\Database\Connection Object

(záměrně zkrácený výpis)

greeny
Člen | 405
+
0
-

Protože to vrátí objekt Selection, který obsahuje všechny vrácené sloupečky.

Pokud chceš jen jeden sloupeček, zavolej na to ještě ->fetch()

Pokud chceš to id v tom sloupečku tak zavolej ->fetch()->id

ViPEr*CZ*
Člen | 818
+
0
-

Selection neobsahuje všechny vrácené sloupečky. Selection obsahuje jen informace pro to, aby se mohl zavolat správný SQL dotaz.
Ten se zavolá až například po metodě fetch() jak píše greeny.
A pokud máte volat ->fetch()->id tak by jste měl mít jistotu, že fetch() něco vůbec vrátí. Pokud by řádek v DB nebyl, tak by to hodilo chybu.

kloban
Člen | 123
+
0
-

Díky moc.