1
0
This repository has been archived on 2021-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
gallery3-contrib/3.0/obsolete/web_client/system/libraries/Database_Query.php

95 lines
1.6 KiB
PHP

<?php defined('SYSPATH') or die('No direct script access.');
/**
* Database query wrapper.
*
* $Id: Database_Query.php 4679 2009-11-10 01:45:52Z isaiah $
*
* @package Kohana
* @author Kohana Team
* @copyright (c) 2008-2009 Kohana Team
* @license http://kohanaphp.com/license
*/
class Database_Query_Core {
protected $sql;
protected $params;
protected $ttl = FALSE;
public function __construct($sql = NULL)
{
$this->sql = $sql;
}
public function __toString()
{
// Return the SQL of this query
return $this->sql;
}
public function sql($sql)
{
$this->sql = $sql;
return $this;
}
public function value($key, $value)
{
$this->params[$key] = $value;
return $this;
}
public function bind($key, & $value)
{
$this->params[$key] =& $value;
return $this;
}
public function execute($db = 'default')
{
if ( ! is_object($db))
{
// Get the database instance
$db = Database::instance($db);
}
// Import the SQL locally
$sql = $this->sql;
if ( ! empty($this->params))
{
// Quote all of the values
$params = array_map(array($db, 'quote'), $this->params);
// Replace the values in the SQL
$sql = strtr($sql, $params);
}
if ($this->ttl !== FALSE)
{
// Load the result from the cache
return $db->query_cache($sql, $this->ttl);
}
else
{
// Load the result (no caching)
return $db->query($sql);
}
}
/**
* Set caching for the query
*
* @param mixed Time-to-live (FALSE to disable, NULL for Cache default, seconds otherwise)
* @return Database_Query
*/
public function cache($ttl = NULL)
{
$this->ttl = $ttl;
return $this;
}
} // End Database_Query