ECShop - 数据库操作类
ECShop的数据操作类文件是includes/cls_mysql.php,类名是cls_mysql。该类主要提供了下面 一些比较有用的方法:
- getAll($sql)和getAllCached($sql, $cached = 'FILEFIRST'):获取所有记录。
- getRow($sql, $limited = false)和getRowCached($sql, $cached = 'FILEFIRST'):获取单行记录。
- getCol($sqlse)和getColCached($sql, $cached = 'FILEFIRST'):获取某栏位的所有值。
- getOne($sql, $limited = false)和getOneCached($sql, $cached = 'FILEFIRST'):获取单个数值。
- query($sql):执行数据库查询。
- autoExecute($table, $field_values, $mode = 'INSERT', $where = ''):数据库表操作。
- insert_id():获取刚刚插入数据库的新行的id。
现在我们以实例的方式来说明这些方法如何使用。首先,在ecshop/admin目录下新增文件test_mysql.php,文件内容如下:
- <?php
- define('IN_ECS', true);
- define('EC_CHARSET', 'utf-8');
- define('ROOT_PATH', 'D:/Program Files/Zend/Apache2/htdocs/ecshop/');
- define('DATA_DIR', 'data');
- $db_host = "localhost:3306";
- $db_name = "ecshop";
- $db_user = "root";
- $db_pass = "";
- require('../includes/cls_mysql.php');
- $db = new cls_mysql($db_host, $db_user, $db_pass, $db_name);
获取所有记录
getAll方法用来从数据库中获取满足条件的所有记录。getAllCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的最后:
- test_getAll();
- function test_getAll()
- {
- global $db;
- $sql = "SELECT user_id, user_name, email FROM ecs_admin_user";
- $result = $db->getAll($sql);
- print_r($result);
- }
修改以后的test_mysql.php执行结果如下:
- Array
- (
- [0] => Array
- (
- [user_id] => 1
- [user_name] => admin
- [email] => admin@admin.com
- )
- [1] => Array
- (
- [user_id] => 2
- [user_name] => bjgonghuo1
- [email] => bj@163.com
- )
- [2] => Array
- (
- [user_id] => 3
- [user_name] => shhaigonghuo1
- [email] => shanghai@163.com
- )
- [3] => Array
- (
- [user_id] => 4
- [user_name] => amonest
- [email] => amonest@foxmail.com
- )
- )
获取单行记录
getRow方法用来从数据库中获取满足条件的单行记录,或者说是第一条记录。getRowCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的最后:
- test_getRow();
- function test_getRow()
- {
- global $db;
- $sql = "SELECT user_id, user_name, email FROM ecs_admin_user LIMIT 1";
- $result = $db->getRow($sql);
- print_r($result);
- }
修改以后的test_mysql.php执行结果如下:
- Array
- (
- [user_id] => 1
- [user_name] => admin
- [email] => admin@admin.com
- )
获取某栏位的所有值
getCol方法用来从数据库中获取满足条件的某个栏位的所有值。getColCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的最后:
- test_getCol();
- function test_getCol()
- {
- global $db;
- $sql = "SELECT email FROM ecs_admin_user";
- $result = $db->getCol($sql);
- print_r($result);
- }
修改以后的test_mysql.php执行结果如下:
- Array
- (
- [0] => admin@admin.com
- [1] => bj@163.com
- [2] => shanghai@163.com
- [3] => amonest@foxmail.com
- )
获取单个值
getOne方法用来从数据库中获取满足条件的单个值。getOneCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的最后:
- test_getOne();
- function test_getOne()
- {
- global $db;
- $sql = "SELECT email FROM ecs_admin_user WHERE user_id = 4";
- $result = $db->getOne($sql);
- print_r($result);
- }
修改以后的test_mysql.php执行结果如下:
- amonest@foxmail.com
执行数据库查询
query方法用来执行数据库查询,例如INSERT,UPDATE,DELETE等。
将下面的代码加到test_mysql.php的最后:
- test_query();
- function test_query()
- {
- global $db;
- $sql = "UPDATE ecs_admin_user SET todolist = '你有一封新邮件!' WHERE user_id = 4";
- $db->query($sql);
- $sql = "SELECT todolist FROM ecs_admin_user WHERE user_id = 4";
- $result = $db->getOne($sql);
- print_r($result);
- }
修改以后的test_mysql.php执行结果如下:
- 你有一封新邮件!
数据库表操作
autoExecute方法用来简化对数据表的INSERT和UPDATE。
将下面的代码加到test_mysql.php的最后:
- test_autoExecute();
- function test_autoExecute()
- {
- global $db;
- $table = "ecs_role";
- $field_values = array("role_name" => "总经理办", "role_describe" => "总经理办", "action_list" => "all");
- $db->autoExecute($table, $field_values, "INSERT");
- // 执行的SQL:INSERT INTO ecs_role (role_name, action_list, role_describe) VALUES ('总经理办', 'all', '总经理办')
- $role_id = $db->insert_id(); // 新记录的ID:5
- $field_values = array("action_list" => "goods_manage");
- $db->autoExecute($table, $field_values, "UPDATE", "role_id = $role_id");
- // 执行的SQL:UPDATE ecs_role SET action_list = 'goods_manage' WHERE role_id = 5
- $sql = "SELECT action_list FROM ecs_role WHERE role_id = $role_id";
- $result = $db->getOne($sql);
- print_r($result);
- }
修改以后的test_mysql.php执行结果如下:
- goods_manage
ECShop - 数据库操作类的更多相关文章
- ecshop数据库操作类
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现. 好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小. 当网站需要做me ...
- ecshop数据库操作函数
ecshop数据库操作函数 分类: ecshop和dede2013-09-23 14:02 1716人阅读 评论(0) 收藏 举报 本章我们将结合eschop二次开发一些常见的开发例子.来谈谈ecsh ...
- 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~
最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...
- Android打造属于自己的数据库操作类。
1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...
- PHP 数据库操作类:ezSQL
EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.htmlezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.o ...
- 通用数据库操作类,前端easyui-datagrid,form
实现功能: 左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[ ...
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...
- 一个基于PDO的数据库操作类(新) 一个PDO事务实例
<?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录 ...
随机推荐
- SQL优化 总结 精简
索引: 考虑在 where 及 order by 涉及的列上建立索引 经常同时存取多列,且每列都含有重复值可考虑建立组合索引,且查询越频繁的字段放前面 按需使用聚集与非聚集索引,聚集不适合频繁更新.适 ...
- 支付宝支付-tp5
官方文档中第二步请求,获取签名后的订单信息,并没有说清楚需要的数据和数据的格式,这里详细说下. 1.先引入签名和验签的类 2.实例化该类,将下图方框里的数据换成你的 3.拼凑支付宝服务器端需要的数据和 ...
- POJ - 1330 Nearest Common Ancestors(基础LCA)
POJ - 1330 Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %l ...
- 安装openblas和matcaffe时遇到的问题
1.在安装openblas时,报错:/usr/bin/ld: cannot find -lgfortran 这里是需要安装的是libgfortran-x.x-dev,“x.x”是版本名.使用sudo ...
- 设置phpMyAdmin本地自动登陆
一般配置本地测试用的 phpMyAdmin 可以不用每次输入帐号密码,打开后自动登陆就行了. 版本: phpMyAdmin 3.5.3 打开: phpMyAdmin 根目录 复制: config.sa ...
- 《JS权威指南学习总结--8.8.3 不完全函数》
内容要点: 本节讨论的是一种函数变换技巧,即把一次完整的函数调用拆成多次函数调用,每次传入的实参都是完整实参的一部分,每个拆分开的函数叫做不完全函数(partial function),每次函数调用叫 ...
- 6.Hibernate单向的多对一 关联映射
1.创建如下项目结构 2.在项目的src下创建hibernate.cfg.xml主配置文件 <?xml version="1.0" encoding="UTF-8& ...
- s=a+aa+aaa+aaaa+aa...aaaa
main(){ int a,n,count=1; long int sn=0,tn=0; cout<<"input a and n:"; cin>>a> ...
- stack(STL)
//Stack STL //在STL中,栈是以别的容器作为底部结构,再将 //接口改变,使之符合栈的特性 //一共5个常用操作函数 //构造析构 stack<Elem>c; //build ...
- Django中url匹配规则的补充
Django中url匹配规则是在urls.py文件中配置的. 1.关于正则匹配优先级 在url匹配列表中,如果第一条和第二条同时满足匹配规则,则优先匹配第一条. 在url匹配列表中,如果第一条为正则模 ...