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 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
PHP中$_SERVER的详细参数与说明
Jul 29 PHP
php getsiteurl()函数
Sep 05 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 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
用PHP 4.2书写安全的脚本
2006/10/09 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
python常用运维脚本实例小结
2020/02/14 Python
python开发一款翻译工具
2020/10/10 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
东方红海科技面试题软件测试方面
2012/02/08 面试题
水电工岗位职责
2014/02/12 职场文书
青春寄语大全
2014/04/09 职场文书
销售团队激励口号
2014/06/06 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
会计简历自我评价
2015/03/10 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
学习心理学心得体会
2016/01/22 职场文书
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技