private function initialize()
    {
        $this->pdo->exec(
            'CREATE TABLE IF NOT EXISTS `'.$this->table.'` '
            .'(id INTEGER PRIMARY KEY AUTO_INCREMENT, channel VARCHAR(255),level_name VARCHAR(255), level INTEGER, message LONGTEXT, date DATETIME)'
        );
        //Read out actual columns
        $actualFields = array();
        $rs = $this->pdo->query('SELECT * FROM `'.$this->table.'` LIMIT 0');
        for ($i = 0; $i < $rs->columnCount(); $i++) {
            $col = $rs->getColumnMeta($i);
            $actualFields[] = $col['name'];
        }
        //Calculate changed entries
        $removedColumns = array_diff(
            $actualFields,
            $this->additionalFields,
            array('id', 'channel', 'level','level_name', 'message', 'date')
        );
        $addedColumns = array_diff($this->additionalFields, $actualFields);
        //Remove columns
        if (!empty($removedColumns)) {
            foreach ($removedColumns as $c) {
                $this->pdo->exec('ALTER TABLE `'.$this->table.'` DROP `'.$c.'`;');
            }
        }
        //Add columns
        if (!empty($addedColumns)) {
            foreach ($addedColumns as $c) {
                $this->pdo->exec('ALTER TABLE `'.$this->table.'` add `'.$c.'` TEXT NULL DEFAULT NULL;');
            }
        }
        //Prepare statement
        $columns = "";
        $fields = "";
        foreach ($this->additionalFields as $f) {
            $columns.= ", $f";
            $fields.= ", :$f";
        }
        $this->statement = $this->pdo->prepare(
            'INSERT INTO `'.$this->table.'` (channel, level, level_name, message, date'.$columns.')
            VALUES (:channel, :level, :level_name, :message, :date'.$fields.')'
        );
        $this->initialized = true;
    }
private function initialize()
    {
        $this->pdo->exec(
            'CREATE TABLE IF NOT EXISTS `'.$this->table.'` '
            .'(id INTEGER PRIMARY KEY AUTO_INCREMENT, channel VARCHAR(255),level_name VARCHAR(255), level INTEGER, message LONGTEXT, date DATETIME)'
        );
        //Read out actual columns
        $actualFields = array();
        $rs = $this->pdo->query('SELECT * FROM `'.$this->table.'` LIMIT 0');
        for ($i = 0; $i < $rs->columnCount(); $i++) {
            $col = $rs->getColumnMeta($i);
            $actualFields[] = $col['name'];
        }
        //Calculate changed entries
        $removedColumns = array_diff(
            $actualFields,
            $this->additionalFields,
            array('id', 'channel', 'level','level_name', 'message', 'date')
        );
        $addedColumns = array_diff($this->additionalFields, $actualFields);
        //Remove columns
        if (!empty($removedColumns)) {
            foreach ($removedColumns as $c) {
                $this->pdo->exec('ALTER TABLE `'.$this->table.'` DROP `'.$c.'`;');
            }
        }
        //Add columns
        if (!empty($addedColumns)) {
            foreach ($addedColumns as $c) {
                $this->pdo->exec('ALTER TABLE `'.$this->table.'` add `'.$c.'` TEXT NULL DEFAULT NULL;');
            }
        }
        //Prepare statement
        $columns = "";
        $fields = "";
        foreach ($this->additionalFields as $f) {
            $columns.= ", $f";
            $fields.= ", :$f";
        }
        $this->statement = $this->pdo->prepare(
            'INSERT INTO `'.$this->table.'` (channel, level, level_name, message, date'.$columns.')
            VALUES (:channel, :level, :level_name, :message, :date'.$fields.')'
        );
        $this->initialized = true;
    }
private function initialize ( ) { $ this -> pdo -> exec ( 'CREATE TABLE IF NOT EXISTS `' . $ this -> table . '` ' . '(id INTEGER PRIMARY KEY AUTO_INCREMENT, channel VARCHAR(255),level_name VARCHAR(255), level INTEGER, message LONGTEXT, date DATETIME)' ) ; //Read out actual columns $ actualFields = array ( ) ; $ rs = $ this -> pdo -> query ( 'SELECT * FROM `' . $ this -> table . '` LIMIT 0' ) ; for ( $ i = 0 ; $ i < $ rs -> columnCount ( ) ; $ i ++ ) { $ col = $ rs -> getColumnMeta ( $ i ) ; $ actualFields [ ] = $ col [ 'name' ] ; } //Calculate changed entries $ removedColumns = array_diff ( $ actualFields , $ this -> additionalFields , array ( 'id' , 'channel' , 'level' , 'level_name' , 'message' , 'date' ) ) ; $ addedColumns = array_diff ( $ this -> additionalFields , $ actualFields ) ; //Remove columns if ( ! empty ( $ removedColumns ) ) { foreach ( $ removedColumns as $ c ) { $ this -> pdo -> exec ( 'ALTER TABLE `' . $ this -> table . '` DROP `' . $ c . '`;' ) ; } } //Add columns if ( ! empty ( $ addedColumns ) ) { foreach ( $ addedColumns as $ c ) { $ this -> pdo -> exec ( 'ALTER TABLE `' . $ this -> table . '` add `' . $ c . '` TEXT NULL DEFAULT NULL;' ) ; } } //Prepare statement $ columns = "" ; $ fields = "" ; foreach ( $ this -> additionalFields as $ f ) { $ columns .= ", $f" ; $ fields .= ", :$f" ; } $ this -> statement = $ this -> pdo -> prepare ( 'INSERT INTO `' . $ this -> table . '` (channel, level, level_name, message, date' . $ columns . ')
            VALUES (:channel, :level, :level_name, :message, :date' . $ fields . ')' ) ; $ this -> initialized = true ; }
Initializes this handler by creating the table if it not exists
Initializes this handler by creating the table if it not exists