Arquivos
wMind/mind3rd/API/classes/MindDB.php
T
Felipe Nascimento de Moura 34fe21947d Added a few more annotations
2011-04-23 01:59:26 -03:00

76 linhas
1.6 KiB
PHP
Arquivo Executável

<?php
/**
* This file is part of TheWebMind 3rd generation.
*
* @author Felipe Nascimento de Moura <felipenmoura@gmail.com>
* @license licenses/mind3rd.license
*/
/**
* Basic abstraction of the SQLite layer
*
* @author felipe
*/
class MindDB {
public static $db= null;
public static $inTransaction= false;
public $lastInsertedId= 0;
public function __get($what)
{
if($what=='db')
return self::$db;
if(isset($this->$what))
return $this->$what;
return false;
}
/**
* @method query
* @param String $qr
* @return Mixed
*/
public function query($qr)
{
$ret= self::$db->query($qr);
$ar_ret= Array();
while($tuple= $ret->fetchArray(SQLITE3_ASSOC))
{
$ar_ret[]= $tuple;
}
return $ar_ret;
}
/**
* Performs a command into the database
* @param String $command
* @return Int
*/
public function execute($command)
{
if(strtoupper($command) == 'BEGIN')
{
if(self::$inTransaction)
return true;
self::$inTransaction= true;
}elseif(strtoupper($command) == 'COMMIT' || strtoupper($command) == 'ROLLBACK')
{
self::$inTransaction= false;
}
$ret= self::$db->exec($command);
$this->lastInsertedId= self::$db->lastInsertRowId();
return $this->lastInsertedId;
}
public function __construct()
{
if(!self::$db)
if(!self::$db = new SQLite3(_MINDSRC_.SQLITE))
{
Mind::message('Database', '[Fail]');
return false;
}
return $this;
}
}