Prüfen ob eine Spalte existiert

14. Januar 2015

 

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.