ezSQL PHP数据库操作类库


Posted in PHP onMay 16, 2010

ezSQL 下载地址:
下载 : ezSQL

新版本是2.05添加了很多支持,包括 CodeIgniter,MSSQL, PDO 等等
我之前也为 CodeIgniter 写过一次,不过只支持 MySQL

看看使用示例
其实也没什么难度,直接看源代码即可,主要是程序设计的思想很好。

Example 1
----------------------------------------------------

// Select multiple records from the database and print them out..
$users = $db->get_results("SELECT name, email FROM users");
foreach ( $users as $user ) {
// Access data using object syntax
echo $user->name;
echo $user->email;
}
Example 2
----------------------------------------------------

// Get one row from the database and print it out..
$user = $db->get_row("SELECT name,email FROM users WHERE id = 2");
echo $user->name;
echo $user->email;
Example 3
----------------------------------------------------

// Get one variable from the database and print it out..
$var = $db->get_var("SELECT count(*) FROM users");
echo $var;
Example 4
----------------------------------------------------

// Insert into the database
$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'justin','jv@foo.com')");
Example 5
----------------------------------------------------

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

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

// Display the structure and contents of any result(s) .. or any variable
$results = $db->get_results("SELECT name, email FROM users");
$db->vardump($results);
Example 8
----------------------------------------------------

// Get 'one column' (based on column index) and print it out..
$names = $db->get_col("SELECT name,email FROM users",0)
foreach ( $names as $name ) {
echo $name;
}
Example 9
----------------------------------------------------

// Same as above ‘but quicker'
foreach ( $db->get_col("SELECT name,email FROM users",0) as $name ) {
echo $name;
}
Example 10
----------------------------------------------------

// Map out the full schema of any given database and print it out..
$db->select("my_database");
foreach ( $db->get_col("SHOW TABLES",0) as $table_name ) {
$db->debug();
$db->get_results("DESC $table_name");
}
$db->debug();

EZSQL类介绍:

ezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL、oracle8/9 、interbase、FireBird、PostgreSQL、MS-SQL、sqlite、sqlite C++)。
在你的脚本开头是要包含一个一个PHP文件。然后,你就可以使用更小、更容易的一套ezsql函数来代替标准的PHP数据库函数。
它会自动缓存的查询结果,提供了一系列简单的函数操作及扩展,并且没有造成额外的服务器开销
它具有优良的调试功能,使你快速的判断SQL语句的执行过程
ezsql函数可以返回的结果是对象,关联数组,或数值数组
它可以大大缩短开发时间,并在大多数情况下,将简化您的代码,让其跑得更快,以及很容易调试和优化您的数据库查询语句。
这是一个小类,在你的网站上并不会增加很大的开销。

类中有以下的方法:
- $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 ? 格式化插入数据库的字符串,eg:mysql_escape_string(stripslashes($str))
- $db->flush ? 清除缓存
- $db->get_cache ? 换取缓存
- $db->hide_errors ? 隐藏错误
- $db->register_error ? 注册错误
- $db->show_errors ? 显示错误
- $db->store_cache ? 存储到缓存
- $db->sysdate ? 获取系统时间
- $db = new db — 建立一个新db对象.

wordpress对ezsql进行了修改,同时也使其仅适用于mysql

wordpress修改后的一些类操作也就是函数如下:

function query($query)
这个函数是 WPDB 最基本的函数,$query 为 SQL 语句,提交给数据库查询,结果分二种情况:
1. 如果是 “insert|delete|update|replace”, 返回受影响行数,在 “insert|replace”的情况下,用 $this->insert_id 记录新插入的ID。
2. 如果是 “select”,用 $this->last_result 记下查询结果集,返回查询到的记录行数。

function escape($string)
使用反斜线引用字符串,即使用魔术引号。

function insert($table, $data)
这是插入记录函数,第一个参数是表的字段数组,第二个是数据数组。插入数据返回1,否则为0。

function update($table, $data, $where)
这是更新纪录函数,第一个参数是表的字段数组,第二个是数据数组,第三个是条件数组,它是一个 nane array。更新了为1,否则为0。

function get_var($query=null, $x = 0, $y = 0)
如果 $query 不为空,首先执行查询,然后返回第 X 列 Y 行的值。

function get_row($query = null, $output = OBJECT, $y = 0)
返回一行,$outpu 指定返回的类型,可以是 ARRAY_A,ARRAY_N 或者 OBJECT。$y 指定第几行。

function get_col($query = null , $x = 0)
返回一列,$x 指定第几列。

function get_results($query = null, $output = OBJECT)
返回查询结果集,可以以 ARRAY_A,ARRAY_N 或者 OBJECT 三种方式返回。

function get_col_info($info_type = ‘name', $col_offset = -1)
返回字段信息。

其他还有一些函数,这里不详细讲了。另外还有两个全局变量,SAVEQUERIES 和 WP_DEBUG,第一个是,可以让你把访问页面执行的查询把保存到 $this->queries 这个数组中,以后调试的时候使用,WP_DEBUG 则让你把错误输出。这两个默认都没有打开,你测试的时候可以在 wp_config.php 中将其开启。

PHP 相关文章推荐
PHP在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
example2.php
Oct 09 PHP
随机广告显示(PHP函数)
Oct 09 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
Jun 12 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
php 提速工具eAccelerator 配置参数详解
May 16 #PHP
php date()日期时间函数详解
May 16 #PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
May 16 #PHP
PHP下打开URL地址的几种方法小结
May 16 #PHP
让PHP支持断点续传的源码
May 16 #PHP
php 获取一个月第一天与最后一天的代码
May 16 #PHP
PHP 缓存实现代码及详细注释
May 16 #PHP
You might like
Zend引擎的发展 [15]
2006/10/09 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
js验证表单大全
2006/11/25 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Python字符串处理实例详解
2017/05/18 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
小学教师国培感言
2014/02/08 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
技术入股协议书
2016/03/22 职场文书
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题
Python&Matlab实现樱花的绘制
2022/04/07 Python
ant design charts 获取后端接口数据展示
2022/05/25 Javascript