您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop数据库getRow、getAll、getOne有什么区别
孤岚2024-11-27Ecshop商城教程已有人查阅
导读ECShop没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现。这样做的好处是实现非常轻量,大大减小了分发包的文件大小。
ECShop没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现。这样做的好处是实现非常轻量,大大减小了分发包的文件大小。另外,当网站需要做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的之后:
$db->getOne($sql) 返回查询的第一个字段
比如:
$sql ="select count(*) from ecs_goods ";
$count = $db->getOne($sql);
$count 为 商品数据总个数
$db->getRow($sql) 则返回数据库中一行数据 比如
$sql = "select * from ecs_goods ";
$row = $db->getRow($sql);
则$row 为一个一维的关联数组 可以通过$row['goods_name'] 取得商品名称 等等。。。
其实这里的结果
$row_all = $db->getAll($sql) ;
$row = $db->getRow($sql);
$row 其实等于 $row_all[0] 当然你可以通过循环 取得 其他的值 比如 $row_all[1] ...
$db->getOne 一行一个字段
$db->getRow 一行记录
$db->getAll 全部记录
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,文件内容如下:
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);
}
获取单行记录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);
}
获取某栏位的所有值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);
}
获取单个值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);
}
执行数据库查询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);
}
$db->getAll($sql) 返回查询数据表中所有结果,形式是一个二维关联数组。如果把结果赋值给smarty非常方便通过循环在模板里面引用。$db->getOne($sql) 返回查询的第一个字段
比如:
$sql ="select count(*) from ecs_goods ";
$count = $db->getOne($sql);
$count 为 商品数据总个数
$db->getRow($sql) 则返回数据库中一行数据 比如
$sql = "select * from ecs_goods ";
$row = $db->getRow($sql);
则$row 为一个一维的关联数组 可以通过$row['goods_name'] 取得商品名称 等等。。。
其实这里的结果
$row_all = $db->getAll($sql) ;
$row = $db->getRow($sql);
$row 其实等于 $row_all[0] 当然你可以通过循环 取得 其他的值 比如 $row_all[1] ...
$db->getOne 一行一个字段
$db->getRow 一行记录
$db->getAll 全部记录
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop文章列表怎么改为显示内容提要
可以提取详细内容的固定字符宽度修改:includes\lib_article.php显示前20字符 多余的 使用 ...代替
ecshop购物流程收货人邮箱改成不必填项的方法
在ECSHOP模板购物流程中,填写收货人信息的时候,大家应该都知道邮箱是必填的,但是好多人都觉得这个没有必要,应该改成不必填
ecshop实现退出登录不清空购物车的优化方法实例
ecshop退出登陆后会清空购物车里面的商品,大家都应该知道有这样的算是功能缺陷。网上类似的教程相当多,但都有问题,说句不好听的,算是引新手入!
ecshop后台管理增加 和毛利润统计的实现方法
ecshop 功能二次开发 关于后台管理增加 和毛利润统计功能(一)首先在订单中的商品信息【编辑】页面中,修改 。也可以在添加商品时添加成本的如果不做手工修改,则使用默认的商品
相关源码
-
Wordpress博客新闻主题在线商店平台betheme 21.5.6版BeTheme是一款功能丰富的WordPress主题模板,专注于为各行业提供网站建设解决方案。该模板支持WooCommerce电子商务功能,能够快速搭建在线商店平台,同时适用于博客、新闻资讯类网站建设。自2014年发布以来,该模板已经获得大量用户的使用验证。查看源码 -
(自适应)游泳馆泳池水处理器设备pbootcms网站模板免费下载专注服务于泳池水处理设备制造商、泳池系统工程商等企业用户。模板预设设备分类体系、技术参数展示模块和解决方案呈现页面,满足行业特有展示需求。查看源码 -
(PC+WAP)绿色资源回收新能源环保设备pbootcms源码下载基于PbootCMS系统深度开发的环保行业模板,特别适配资源回收设备、新能源技术、环境治理装备等企业的线上展示需求。集成产品库、解决方案、环保案例等专业模块,助力企业高效传递绿色价值。查看源码 -
(自适应)家禽饲养养殖基地pbootcms模板响应式模板下载为家禽饲养企业、养殖基地设计的响应式网站模板,聚焦畜禽产品展示、养殖技术分享及企业信息服务。采用PbootCMS内核开发,响应式技术确保PC与手机端数据实时同步查看源码 -
帝国cms7.5自适应作文新闻资讯教育网站模板本模板基于帝国CMS7.5内核开发,为教育机构、培训学校等知识传播单位打造。通过自适应设计确保在手机、平板、电脑等设备上均能获得专业浏览体验查看源码 -
(自适应)中英文双语外贸扬声器音响喇叭话筒网站模板免费下载为音响设备外贸企业设计的中英文双语网站模板,基于PbootCMS内核开发。适配扬声器系统、音频设备等产品的国际化展示需求查看源码
| 分享笔记 (共有 篇笔记) |
