/home/desid573/public_html/ims2/system/database/drivers/sqlite3
Edit: /home/desid573/public_html/ims2/system/database/drivers/sqlite3/sqlite3_driver.php (8394B)
password)
? new SQLite3($this->database)
: new SQLite3($this->database, SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, $this->password);
}
catch (Exception $e)
{
return FALSE;
}
}
// --------------------------------------------------------------------
/**
* Database version number
*
* @return string
*/
public function version()
{
if (isset($this->data_cache['version']))
{
return $this->data_cache['version'];
}
$version = SQLite3::version();
return $this->data_cache['version'] = $version['versionString'];
}
// --------------------------------------------------------------------
/**
* Execute the query
*
* @todo Implement use of SQLite3::querySingle(), if needed
* @param string $sql
* @return mixed SQLite3Result object or bool
*/
protected function _execute($sql)
{
return $this->is_write_type($sql)
? $this->conn_id->exec($sql)
: $this->conn_id->query($sql);
}
// --------------------------------------------------------------------
/**
* Begin Transaction
*
* @return bool
*/
protected function _trans_begin()
{
return $this->conn_id->exec('BEGIN TRANSACTION');
}
// --------------------------------------------------------------------
/**
* Commit Transaction
*
* @return bool
*/
protected function _trans_commit()
{
return $this->conn_id->exec('END TRANSACTION');
}
// --------------------------------------------------------------------
/**
* Rollback Transaction
*
* @return bool
*/
protected function _trans_rollback()
{
return $this->conn_id->exec('ROLLBACK');
}
// --------------------------------------------------------------------
/**
* Platform-dependent string escape
*
* @param string
* @return string
*/
protected function _escape_str($str)
{
return $this->conn_id->escapeString($str);
}
// --------------------------------------------------------------------
/**
* Affected Rows
*
* @return int
*/
public function affected_rows()
{
return $this->conn_id->changes();
}
// --------------------------------------------------------------------
/**
* Insert ID
*
* @return int
*/
public function insert_id()
{
return $this->conn_id->lastInsertRowID();
}
// --------------------------------------------------------------------
/**
* Show table query
*
* Generates a platform-specific query string so that the table names can be fetched
*
* @param bool $prefix_limit
* @return string
*/
protected function _list_tables($prefix_limit = FALSE)
{
return 'SELECT "NAME" FROM "SQLITE_MASTER" WHERE "TYPE" = \'table\''
.(($prefix_limit !== FALSE && $this->dbprefix != '')
? ' AND "NAME" LIKE \''.$this->escape_like_str($this->dbprefix).'%\' '.sprintf($this->_like_escape_str, $this->_like_escape_chr)
: '');
}
// --------------------------------------------------------------------
/**
* Fetch Field Names
*
* @param string $table Table name
* @return array
*/
public function list_fields($table)
{
if (($result = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE)
{
return FALSE;
}
$fields = array();
foreach ($result->result_array() as $row)
{
$fields[] = $row['name'];
}
return $fields;
}
// --------------------------------------------------------------------
/**
* Returns an object with field data
*
* @param string $table
* @return array
*/
public function field_data($table)
{
if (($query = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE)
{
return FALSE;
}
$query = $query->result_array();
if (empty($query))
{
return FALSE;
}
$retval = array();
for ($i = 0, $c = count($query); $i < $c; $i++)
{
$retval[$i] = new stdClass();
$retval[$i]->name = $query[$i]['name'];
$retval[$i]->type = $query[$i]['type'];
$retval[$i]->max_length = NULL;
$retval[$i]->default = $query[$i]['dflt_value'];
$retval[$i]->primary_key = isset($query[$i]['pk']) ? (int) $query[$i]['pk'] : 0;
}
return $retval;
}
// --------------------------------------------------------------------
/**
* Error
*
* Returns an array containing code and message of the last
* database error that has occurred.
*
* @return array
*/
public function error()
{
return array('code' => $this->conn_id->lastErrorCode(), 'message' => $this->conn_id->lastErrorMsg());
}
// --------------------------------------------------------------------
/**
* Replace statement
*
* Generates a platform-specific replace string from the supplied data
*
* @param string $table Table name
* @param array $keys INSERT keys
* @param array $values INSERT values
* @return string
*/
protected function _replace($table, $keys, $values)
{
return 'INSERT OR '.parent::_replace($table, $keys, $values);
}
// --------------------------------------------------------------------
/**
* Truncate statement
*
* Generates a platform-specific truncate string from the supplied data
*
* If the database does not support the TRUNCATE statement,
* then this method maps to 'DELETE FROM table'
*
* @param string $table
* @return string
*/
protected function _truncate($table)
{
return 'DELETE FROM '.$table;
}
// --------------------------------------------------------------------
/**
* Close DB Connection
*
* @return void
*/
protected function _close()
{
$this->conn_id->close();
}
}