Example #1
0
 /**
  * 保存所有更改,第一个参数是事务开关
  * Enter description here ...
  * @param string $transaction
  */
 public static function save($transaction = false)
 {
     if (empty(self::$_writeSpace)) {
         return true;
     }
     //没有动作语句,返回成功
     $sqls = array();
     foreach (self::$_writeSpace as $one) {
         if ($one['type'] == 'Insert') {
             $keys = array();
             foreach ($one['rows'] as $key => $value) {
                 $keys[] = $key;
             }
             $sql = 'insert into ' . $one['table'] . ' ' . '(' . implode(',', $keys) . ')' . ' VALUES(' . '\'' . implode('\',\'', $one['rows']) . '\'' . ')';
         } elseif ($one['type'] == 'Update') {
             $rows = array();
             foreach ($one['rows'] as $key => $value) {
                 $rows[] = $key . '=' . '\'' . $value . '\'';
             }
             $sql = 'update ' . $one['table'] . ' set ' . implode(',', $rows) . ' where ' . parent::_conditionParser($one['table'], $one['condition']);
         } elseif ($one['type'] == 'Delete') {
             $sql = 'delete from ' . $one['table'] . ' where ' . parent::_conditionParser($one['table'], $one['condition'] . ';');
         } else {
             $sql = '';
             continue;
         }
         $sqls[] = $sql;
     }
     if ($transaction) {
         self::_connect()->runSql('START TRANSACTION');
         foreach ($sqls as $sqlObj) {
             $succeed = self::_connect()->runSql($sqlObj);
             if (!$succeed) {
                 self::_connect()->runSql('ROLLBACK');
                 self::_connect()->runSql('END');
                 return false;
             }
         }
         self::_connect()->runSql('COMMIT');
         self::_connect()->runSql('END');
     } else {
         foreach ($sqls as $sqlObj) {
             $succeed = self::_connect()->runSql($sqlObj);
         }
     }
     //表级的缓存清扫
     if (self::$_gilConfig['db_resultCache']) {
         foreach (self::$_writeSpace as $one) {
             self::cleanCacheByTable($one['table']);
         }
     }
     //end
     if ($succeed) {
         self::$_writeSpace = array();
     }
     //清空所有请求
     return $succeed;
 }
Example #2
0
<?php

/**
 * 这个文件示例了单文件,非MVC式的编程,十分适合单次用例的快速开发
 */
define('GILPATH', dirname(__FILE__) . '/gilFramework');
//定义GIL框架主程序的文件夹
$gilConfig = array('oo' => false);
//在加载配置文件前写上这句,可以覆盖配置,这里的意思是强制不使用oo模式
include GILPATH . '/GilCore.php';
//GilDBW::update('test',array('id'=>'4'),array('name'=>'ok'));
GilDBW::insert('test', array('name' => 'hi', 'ext' => '1'));
//GilDBW::delete('test',array('id'=>'5'));
GilDBW::save(true);
//GilSession::clean();
//GilSession::set('hello','hi');
//GilSession::del('hello');
//echo GilSession::get('hello');
//exit;
/**
 * 我们在数据库中有2个表
 * test表 列 id name
 * b表 列bid name
 * 下面,我们来读取数据试试看
 */
//$result = gilDB::findSql('select * from test');//单独地运行SQL语句,读表
//需要特别注意,这里需要自行过滤危险字符串
//print_r($result);
//exit;
//GilCache::set('1', 'nihso', '123');//这里示范了key=>value式的缓存写入,默认使用了File引擎缓存,请在gilFramework下建立一个tmp文件夹用于存放临时文件
//echo GilCache::get('1');