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();