阳春白雪 MagicDB
把PHP的 mysql 和 mysqli 封装一下, 然后加个静态化的单件模式就是 阳春白雪的 MagicDB.
在Driver是 ‘mysql’ 的情况下, 内部自动判断可用的 extension, 然后建立连接, 操作和PDO相同哦! 顺序 PDO、mysqli、mysql. 如果PDO可用,则优先使用PDO作为数据库驱动.
示例:
1 <?php
2 /**
3 * 测试 DB, 激动人心的时刻
4 * 使用全局变量的方式存储配置信息不是很好, but now 我们既来之则安之.
5 *
6 * @filesource testDB.php
7 * @package MagicDB
8 * @subpackage test
9 * @version $id: 0.1, utf8, Wed Dec 23 11:45:29 CST 2009
10 * @author LD King <kldscs[at]gmail.com>
11 * @copyright Copyleft (D.) 2007 – 2009 MiFunny China Inc.
12 * @link http://mifunny.info/
13 * @example
14 *
15 */
16
17 require_once ’../DB.class.php‘;
18 $_config['MagicDB'] = array(
19 ’driver‘ => ’mysql‘, //数据库驱动, 参看 http://www.php.net/manual/en/pdo.drivers.php
20 ’dsn‘ => ’mysql:dbname=test;host=127.0.0.1;port=3306‘,
21 ’username‘ => ’test‘,
22 ’password‘ => ”,
23 ’charset‘ => ’utf8‘,
24 ’collate‘ => ’utf8_general_ci‘,
25 ’persistent‘ => false, //是否使用长连接
26 );
27 if( extension_loaded(‘pdo_mysql‘) ){
28 $_config['MagicDB']['options'] = array(
29 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
30 ); //额外选项
31 }
32
33
34 $query = ’select * from test222‘;
35
36 //得到数据库对像事例;
37 $db = DB::getInstance()->db;
38 $re = $db->query($query);
39 var_dump( $re->fetchAll() );
40
41 // 更简单的方法
42 var_export( DB::getOne($query) ); //输出第一行信息(一维数组)
43 var_export( DB::getAll($query) ); //数出所有信息(多维数组)
44
45 ?>
源码地址: http://dscache.googlecode.com/svn/trunk/MagicDB/
接下来干什么呢? Smarty 实在过巨,要不写个简单的模板引擎~~ 有搞头
