Location: PHPKode > projects > NmnLogger > NmnLogger1.1/drivers/NmnLoggerMysqlDriver.php
<?php 
    /*
    NmnLogger is a library that provides logging functionnality to php applications
    Copyright (C) 2006  Ivan Preziosi from netmeans.net - Rome.

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

    For more informations or to join the development of the library contact
    the author at: hide@address.com
    */
require_once "logger/drivers/NmnLoggerBaseDriver.php";

/**
 * This is the mysql logger driver used to log message logs diretcly to a mysql database.
 * As like every NmnLogger driver it must extend the NmnLoggerBaseDriver class.
 * You can specify the tablename as well as the filedname in wich to log into.
 * 
 * @author  Ivan Preziosi <hide@address.com>
 * @version 1.1
 * @since   NmnLogger 1.1
 * @package NmnLogger
 *
 */
class NmnLoggerMysqlDriver extends NmnLoggerBaseDriver{

	private $dbHost = "localhost";
	private $dbUser = "user";
	private $dbPw = "";
	private $dbName = "logdb";
	private $logTable = "site_logs";
	private $logFieldInTable = "log_description_txt";
	private $dateTimeFieldInTable = "log_date_dah";// set to "" to disable inserting in datetime field 
	private $conn;
	

	public function __construct(){
		if (!$this->conn = mysql_connect($this->dbHost, $this->dbUser, $this->dbPw)){
			throw new Exception("NmnLogger:mysql driver can't connect to db");
		}

		if(!mysql_select_db($this->dbName)){
			throw new Exception("NmnLogger:mysql driver can't select db");
		}
	}
	
	/**
	* Writes the message log down to the specified table.
	*/
	public function doLog(NmnMessageFactory $message){
		
		$text = $message->getFormattedMessage();
		$date = date("Y-m-d H:i:s");

		if (isset($this->dateTimeFieldInTable) && $this->dateTimeFieldInTable != ''){
			$query = "INSERT INTO ".$this->logTable." (".$this->dateTimeFieldInTable.",".$this->logFieldInTable.") VALUES ('".mysql_escape_string($date)."','".mysql_escape_string($text)."')";
		}else{
			$query = "INSERT INTO ".$this->logTable." (".$this->logFieldInTable.") VALUES ('".mysql_escape_string($text)."')";
		}
		$result = @mysql_query($query);

		mysql_close($this->conn);

		if (!$result){
			throw new Exception("NmnLogger:mysql driver can't insert in logs table.");
		}
	}

	
}



?>
Return current item: NmnLogger