DbStructure

Tato třída poskytuje přístup k informacím o tabulce, o jejích sloupcích, apod. Její data jsou cachovaná, takže rozhodně nezatěžuje databázi. Této třídy využívá DbTable.

Třída DbStructure pracuje vždy s posledním aktivním spojením. Mj. je také využívána třídou DbTable, která např. sestavuje formuláře. Proto pokud používáte více spojení dbejte na to, jaké spojení je zrovna aktivní!

Definice modifikátorů pro sloupce tabulky

V této třídě jsou definovány modifikátory pro jasné escapování jednotlivých typů sloupců v SQL. Jednotlivé vztahy jsou definovány ve veřejné statické proměnné $modificators. Její úpravou můžete změnit funkčnost frameworku, případně ji rozšířit. Může se stát, že totiž chybí definice pro vámi používaný typ sloupce. Není pak nic jednoduššího, než si jeho podporu přidat.

DbStructure::$modificators['bpchar'] = Db::TEXT;

Seznam jednotlivých modifikátorů, které můžete přiřadit sloupci najdete u manuálů databáze.

Metoda getModificator

Pomocí této metody můžete získat potřebný modifikátor pro kterýkoliv sloupec v tabulce. Metodě předáte jméno tabulky a sloupce, či jejich sql verze spojenou tečkou.

$mod = DbStructure::getModificator('table', 'column');
# alternativně
$mod = DbStructure::getModificator('table.column');

Metoda vrací jméno modifikátoru včetně %.

Metoda getPrimaryKey

Metodou getPrimaryKey zjistíte jméno prvního sloupce, který je definován jako primární. Jako jediný parametr předáváte jméno tabulky.

$column = DbStructure::getPrimaryKey('table');

Metoda getCols

Metoda getCols vrací pole se jmény sloupců, které obsahuje požadovaná tabulka.

$cols = DbStructure::getCols('table');

Metoda tableExists

Pomocí metody tableExists zjistíte, zda daná tabulka v databázi existuje.

if (DbStructure::tableExists('table')) {
...