You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							73 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							73 lines
						
					
					
						
							1.9 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Install database. Provides access to the Database class and allows to add 
 | 
						|
 * hooks for logging, testing, etc during installation. 
 | 
						|
 *
 | 
						|
 * @license see /license.txt
 | 
						|
 * @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
 | 
						|
 */
 | 
						|
class iDatabase extends Database
 | 
						|
{
 | 
						|
 | 
						|
    private static $is_logging = true;
 | 
						|
 | 
						|
    static function is_logging()
 | 
						|
    {
 | 
						|
        return self::$is_logging;
 | 
						|
    }
 | 
						|
 | 
						|
    static function set_is_logging($value)
 | 
						|
    {
 | 
						|
        self::$is_logging = $value;
 | 
						|
    }
 | 
						|
 | 
						|
    static function select_db($database_name, $connection = null)
 | 
						|
    {
 | 
						|
        if (self::is_logging()) {
 | 
						|
            Log::notice(__FUNCTION__ . ' ' . $database_name, Log::frame(1));
 | 
						|
        }
 | 
						|
        return parent::select_db($database_name, $connection);
 | 
						|
    }
 | 
						|
 | 
						|
    static function query($query, $connection = null, $file = null, $line = null)
 | 
						|
    {
 | 
						|
        if (self::is_logging()) {
 | 
						|
            $query = str_replace("\n", '', $query);
 | 
						|
            Log::notice(__FUNCTION__ . ' ' . $query, Log::frame(1));
 | 
						|
        }
 | 
						|
 | 
						|
        $result = parent::query($query, $connection, $file, $line);
 | 
						|
 | 
						|
        if (empty($result)) {
 | 
						|
            $backtrace = debug_backtrace(); // Retrieving information about the caller statement.
 | 
						|
            $caller = isset($backtrace[0]) ? $backtrace[0] : array();
 | 
						|
            $file = $caller['file'];
 | 
						|
            $line = $caller['line'];
 | 
						|
            $message = " sql: $query \n file: $file \n line:$line";
 | 
						|
            Log::error($message);
 | 
						|
        }
 | 
						|
        return $result;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if the table exists in the database, false otherwise.
 | 
						|
     * @param string $database
 | 
						|
     * @param string table
 | 
						|
     * @return boolean 
 | 
						|
     */
 | 
						|
    static
 | 
						|
 | 
						|
    function table_exists($database, $table)
 | 
						|
    {
 | 
						|
        $tables = mysql_list_tables($db);
 | 
						|
        while (list ($temp) = mysql_fetch_array($tables)) {
 | 
						|
            if (strtolower($temp) == strtolower($table)) {
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 |