您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop数据库操作类介绍
惜雪2025-02-12Ecshop商城教程已有人查阅
导读ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现。好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小。
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现。好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小。
当网站需要做memcached缓存时,也可以很方便的实现。缺点:数据库的选择非常狭窄,无法实现其它的非MySQL数据库。
ECShop的数据操作类文件是includes/cls_mysql.php,类名是cls_mysql。该类主要提供了下面 一些比较有用的方法:
getAll方法用来从数据库中获取满足条件的所有记录。getAllCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的之后:
getRow方法用来从数据库中获取满足条件的单行记录,或者说是第一条记录。getRowCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的之后:
getCol方法用来从数据库中获取满足条件的某个栏位的所有值。getColCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的之后:
getOne方法用来从数据库中获取满足条件的单个值。getOneCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。
将下面的代码加到test_mysql.php的之后:
query方法用来执行数据库查询,例如INSERT,UPDATE,DELETE等。
将下面的代码加到test_mysql.php的之后:
数据库表操作
autoExecute方法用来简化对数据表的INSERT和UPDATE。
将下面的代码加到test_mysql.php的之后:
当网站需要做memcached缓存时,也可以很方便的实现。缺点:数据库的选择非常狭窄,无法实现其它的非MySQL数据库。
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 = ''):数据库表操作。
现在我们以实例的方式来说明这些方法如何使用。首先,在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);
}
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);
}
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);
}
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);
}
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);
}
你有一封新邮件!数据库表操作
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);
}
goods_manage
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop后台开发模块步骤实例
第一步首先我们用phpmyadmin建一个支付表,表名:ecs_pay表字段:pay_id,pay_name,pay_info,pay_bank,pay_credit,pay_state第二步添加到后台左侧导航栏并配置权限和相关语言包
ecshop页面底部的在线人数怎么修改
建站之初,网站的在线人数肯定不会很多,那么我们可以稍微修改下ECSHOP的程序,让页面底部显示的在线人数翻几番。
ecshop数据库表详细说明,常见问题及解决方法
ECShop是一款基于PHP语言开发的开源电子商务系统,其数据库设计包含了多个表来支持电子商务网站的各项功能。以下是一些主要的ECShop数据库表及其说明:
ecshop添加新商品交易滚动显示功能的方法
ecshop添加新功能我感觉无外乎就是两个地方的修改,显示的要修改模板,为了方便下次升级,很好都做成lbi,下次升级了直接把lbi拷进去, 然后稍微修改一下dwt的模板就行了。
相关源码
-
帝国CMS7.2互联网自媒体门户整站带数据源码免费下载分享一款高仿极客网门户模板,帝国cms7.2版本,非常适合互联网、自媒体、文章门户网站使用。测法发现备份数据恢复报错,找了几个版本的都是一样的,有能力的自行修复查看源码 -
(自适应)水墨风中药馆中医名医介绍pbootcms网站模板本模板基于PbootCMS内核开发,为中医馆、中医药企业量身定制,可快速搭建具有传统文化特色的官方网站。自适应手机端设计,数据实时同步,助您高效展示中医特色诊疗、中药产品、养生知识等内容,塑造专业品牌形象。查看源码 -
帝国cms7.5品牌连锁店招商加盟商机网站模版源码本模板为招商加盟、创业投资、品牌连锁等商业领域设计,采用帝国CMS7.5内核构建,整体风格简洁大气,突出商业信任感与专业度,适合各类招商加盟项目展示、品牌连锁店宣传等商业应用场景。查看源码 -
帝国CMS中小学生知识点试题练习题考试源码下载基于帝国CMS后台管理系统,支持在线修改联系信息、网站参数等配置,操作流程简洁明了。专注于中小学教育领域,集成知识点总结、试题练习、考试资讯等学习资源,为师生提供全面的在线学习支持与服务。查看源码 -
帝国cms7.5游戏门户H5小游戏网站模板源码免费下载基于帝国CMS7.5开发的H5游戏门户模板,为在线游戏平台设计。支持PC端与移动端同步生成,打造完整的游戏娱乐体验平台。查看源码 -
(自适应)品牌策划高端设计公司网站pbootcms模板免费下载本模板为品牌策划与设计公司打造,基于PbootCMS内核开发,充分考虑了创意设计行业的视觉展示需求。模板设计风格现代简约,布局合理清晰,呈现设计作品与专业服务,帮助设计公司展示创意实力并吸引潜在客户。查看源码
| 分享笔记 (共有 篇笔记) |
