/** * 保存所有更改,第一个参数是事务开关 * 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; }
<?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');