PHP开源数据库操作类ezSQL相关资料

今天来分享一个PHP开源数据库操作类 ezSQL,支持包括mySQL, Oracle8, SQLite(PHP), mssql等各种数据库,ezSQL是由Justin Vincent开发的开源项目,WordPress的wpdb数据库类就是由ezSQL类继承而来的。

ezSQL统一了几个使用频率非常高的函数接口,使得你能很简单的使用,ezSQL还提供了缓存机制和调试机制,再加上其面向对象的编程,可以有效的减少开发时间,提升开发速度。

注:ezSQL不支持数据库存储过程。

ezSQL 几个网址

Github项目:https://github.com/ezSQL/ezSQL
作者官网:http://justinvincent.com/ezsql

ezSQL使用示例

以 mysql 为例

<?php
/* 引入ezSQL文件 */
include_once "../shared/ez_sql_core.php"; // ezSQL核心
include_once "ez_sql_mysql.php"; // 以mysql为例
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host'); //连接数据库

/* ezSQL操作mysql示例 */
$current_time = $db->get_var("SELECT * from user");
print_r($current_time);

// debug调试
$db->debug();
?>

ezSQL几个高频率API

$db->get_results — 从数据库中读取数据集 (or 之前缓存的数据集)
$db->get_row — 从数据库中读取一条数据 (or 之前缓存的数据)
$db->get_col — 从数据库中读取一列指定数据集 (or 之前缓存的数据集)
$db->get_var — 从数据库数据集中读取一个值 (or 之前缓存的数据)
$db->query — 执行一条sql语句(如果有数据,就缓存起来)
$db->debug — 打印最后执行的sql语句与返回的结果(如果有结果)
$db->vardump — 打印变量的结构及内容
$db->select — 选择一个新数据库
$db->get_col_info — 获取列的信息
$db->donation — 捐钱给作者用的
$db->escape — 格式化插入数据库的字符串
$db->flush — 清除缓存
$db->get_cache — 换取缓存
$db->hide_errors — 隐藏错误
$db->register_error — 注册错误
$db->show_errors — 显示错误
$db->store_cache — 存储到缓存
$db->sysdate — 获取系统时间
$db = new db — 建立一个新db对象

ezSQL API示例

取数值:

$var = $db->get_var("SELECT count(*) FROM users");

取对象:

$user = $db->get_row("SELECT name,email FROM users WHERE id = 2");

取数组:

$users = $db->get_results("SELECT name, email FROM users");
foreach( $users as $user ){
	// 使用对象语法
	echo $user->name;
	echo $user->email;
}

可以看出,其实函数返回值为二维数组,经foreach分解后,$user为每条记录的内容,可直接用 $user-> 字段名的方式访问。

get_results()还有另一种调用方式:

// Extract results into the array $dogs (and evaluate if there are any results at the same time)..
if( $dogs = $db->get_results("SELECT breed, owner, name FROM dogs", ARRAY_A) ){
	// Loop through the resulting array on the index $dogs[n]
	foreach( $dogs as $dog_detail ){
		// Loop through the resulting array
		foreach ( $dogs_detail as $key => $val ){
			// Access and format data using $key and $val pairs..
			echo "<b>" . ucfirst($key) . "</b>: $val<br>";
		}
	}
} else {
	// If no users were found then if evaluates to false..
	echo "No dogs found.";
}

执行Insert操作:

$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'yangjunwei','admin#yangjunwei.com')");

update 更新

// Update the database
$db->query("UPDATE users SET name = 'Justin' WHERE id = 2)");

调试信息

// Display last query and all associated results
$db->debug();