Jak zjistit existenci sloupce?

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

Zdravím, nevíte jak v active row zjistit, zda existuje nějaký sloupec? Jde to že se potřebuji zeptat

if($activeRow->columnExist('neco'))
   return $activeRow->$neco;
else
   return $activeRow->necoJineho;

Napadlo me se na to normalne zeptat a zachytit PDOException, ale to mi neprijde idealni, radeji bych se databaze zeptal zda sloupec existuje. Diky za rady

Elijen
Člen | 171
+
0
-
if(isset($activeRow["neco"]))
   return $activeRow["neco"];
else
   return $activeRow["necoJineho"];

Pokud je hodnota sloupce NULL je vráceno TRUE (díky magické metodě __isset třídy ActiveRow)

joseff
Člen | 233
+
0
-

Jenže isset nefunguje na null, takže pokud sloupec existuje a má hodnotu null pak to vráti false, takže to nezjistí to co chci já. Pouze potřebuji zjistit zda sloupec existuje.

Fandik
Člen | 19
+
0
-

tak tam dej složenou podmínku

if(isset($activeRow['neco']) AND $activeRow['neco'] !== NULL)
        return $activeRow['neco'];
else
        return $activeRow["necoJineho"];
Elijen
Člen | 171
+
0
-

joseff napsal(a):

Jenže isset nefunguje na null, takže pokud sloupec existuje a má hodnotu null pak to vráti false, takže to nezjistí to co chci já. Pouze potřebuji zjistit zda sloupec existuje.

Funguje, ještě jednou si přečti můj příspěvek :-)