Prüfen ob eine Spalte existiert


Verwendet man im OXID eShop ein SQL-Statement welches nicht erfolgreich ausgeführt werden kann, weil z. B. eine Spalte nicht vorhanden ist, wird eine Exception geworfen und der Kunde bekommt entweder eine weiße Seite oder "Shop-Offline"-Meldung.

Mit folgendem Snippet (Funktion) kann man einfach prüfen ob eine Spalte vorhanden ist.

protected function _dbColumnExist($sTable, $sColumn)
{
$sDbName = oxRegistry::getConfig()->getConfigParam('dbName');
$sSql = sprintf("SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'",
$sDbName, $sTable, $sColumn);
return oxDb::getDb()->getOne($sSql);
}


Auch zu finden auf Github Gist: https://gist.github.com/proudcommerce/53a7d4b35f78ca9c4679

Vielen Dank an Tim von shoptimax für die ursprüngliche Version.


Tags: spalte, oxid, gist, datenbank, database, column