query($sql); } if (!self::tableHasColumn('customer_discount_override_versions', 'fixed_price')) { $db->query( "ALTER TABLE customer_discount_override_versions ADD COLUMN fixed_price INT NULL DEFAULT NULL AFTER discount" ); } if (!self::tableHasColumn('customer_discount_override_versions', 'department_id')) { $db->query( "ALTER TABLE customer_discount_override_versions ADD COLUMN department_id INT NULL DEFAULT NULL AFTER id" ); } self::$initialized = true; } public static function tableHasColumn(string $table, string $column): bool { global $db; $table = $db->escape_string($table); $column = $db->escape_string($column); $database = $db->escape_string($db->getDatabase()); $sql = "SELECT COUNT(*) AS c FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME = '$table' AND COLUMN_NAME = '$column'"; $result = $db->query($sql); if (!$result) { return false; } $row = $result->fetch_assoc(); return ((int)($row['c'] ?? 0)) > 0; } }