①ecshop中的一些公用函数都会放在includes文件夹里,
而这些公用函数几乎我们都可以用来参照一下就能轻松做出我们想要的其他功能了。
init.php文件中包含以下代码,$smarty->assign('lang', $_LANG);
来设置ecshop的语言包。
② 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 = '')
数据库表操作。
获取单条记录 $GLOBALS['db']->getRow($sql);
getRow方法用来从数据库中获取满足条件的单行记录,或者说是第一条记录。
getRowCached
是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。缓存功能依此类推。
1、例如查询数据库表中的某个字段
$sql = "SELECT level FROM " . $ecs->table('users') . " WHERE user_name = '$vipaccount' "; $row = $GLOBALS['db']->getRow($sql); $level = $row['level'];
2、获取单一字段 $GLOBALS['db']->getOne($sql);
例如查询产品总数:
`echo $GLOBALS['db']->getOne(‘SELECT COUNT(*) FROM ‘ . $GLOBALS['ecs']->table(‘goods’) ;`
查询单一数据:
$sql = "SELECT order_amount FROM " . $GLOBALS['ecs']->table('order_info') . " WHERE order_id = '$order_id'"; $order_amount = $GLOBALS['db']->getOne($sql);
3.获取所有记录
$sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('suppliers') . ' ORDER BY suppliers_name ASC'; $GLOBALS['db']->getAll($sql);
4.获取单行记录 getCol
方法用来从数据库中获取满足条件的某个栏位的所有值
$sql = "SELECT pay_id FROM " . $GLOBALS['ecs']->table('payment'); $GLOBALS['db']->getCol($sql);
getCol()
得到是一个一维数组,而 getAll()
得到的经常是一个二维数组。
5.执行sql语句 $GLOBALS['db']->query($sql);
//执行删除(DELETE),插入(INSERT),更新(UPDATE)等操作可用此方法
6.把数组元素插入数据库
$parent['goods_number'] = ’1′; $parent['parent_id'] = 0; $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table(‘cart’), $parent, ‘INSERT’); //table里面是要插入的表,第二个参数是数组
7.更新数据(数组形式)
$user = array(“username” => “ego”); $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('users'), $user, 'UPDATE', "user_id = '$user_id'");
执行的SQL: UPDATE ecs_users SET username = ‘ego’ WHERE user_id = $user_id
。如果$user 中有两个元素,则 sql中的set 也写两个。
③echsop中的模板
ecshop有强大的模版机制,ECSHOP 结合Dreamweaver实现了一套模版机制,改动模版不再需要上传,而是在后台稍稍动动手设置一下就可以了。
ecshop采用smarty模板技术,Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。
在php文件中使用assign方法把php变量传值给模板文件,例如:$smarty->assign(‘action’, $action);
//把php中的变量$sction传值模板文件(*.dwt)中的'action'
变量,模板文件可用{$action}来输出此值。
使用display
方法来指定当前的模板文件并输出到该文件显示到客户端,例如:$smarty-display(‘user_passport.dwt’);