时间:2021-07-01 10:21:17 帮助过:17人阅读
class module{
var $mysql;//数据库操作类,可以是mysql,oracle,sql等等
var $tbname;//模型对应的表名称
var $debug=false;//是否是调试模式
function module($tbname,$db=''){}//构造函数
function _setDebug($debug=true){}//开启或者关闭调试模式
function add($row,$tbname=''){}//新增加一条记录
function query($strsql){}//直接查询sql语句
function count($where='',$tbname=''){ }//计数统计
function select($where='',$tbname=''){}//查询
function delete($where='',$tbname=''){}//删除满足条件的一个记录
function update($set,$where,$tbname=''){}//更新指定记录
function detail($where,$tbname=''){}//详细显示一条记录
}
?>
在这个模型里面,我是使用数组和数据库的字段来对应的。早期的PHPBEAN里面使用了对象来对应。但后来感觉这种方法在PHP中不好,而且增加了很多无谓的类。使用数组更加方便,效果更好(PHP中的数组的确是个好东西,相对JAVA来说好太多了)。
在下面的demo中,我使用了mysql数据库来演示,其中数据库操作类改自我原来的一个库类,详细请看《修改下以前的库类,php5->php4》。
下面,详细讲解使用demo。^_^
在原来的的包的index.php里面增加
require_once(SITE_PATH.'/libs/phpbean.class.php');
require_once(SITE_PATH.'/libs/mysql.class.php');
$phpbean=new phpbean();
global $phpbean;
$mysql=new mysql("localhost","****","****","52site");
$phpbean->register('db',$mysql);
unset($mysql);
?>
这段代码主要是把MYSQL注册到注册器里面,关于注册器的使用的原理,可以看我翻译的两篇文章。
然后新建一个mysqlController.class.php文件,代码如下:
/**
* MVC演示demo
* 仅仅实现最基本的MVC功能,不包含安全处理,数据过滤,及其他优化措施。
* @author:feifengxlq
* @since:2007-1-24
* @copyright http://www.phpobject.net/blog/
*/
class mysqlController
{
var $module;
function mysqlController(){
require_once(SITE_PATH.'/libs/module.class.php');
$this->module=new module('52site_siteinfo');//52site_siteinfo为表名称
$this->module->query("set names 'gb2312'");//如果是MYSQL5请加上这句
}
function indexAction(){
print_r($this->module->select());//这样实现了读取数据
}
}
?>
上面首先是控制器的构造函数里面,加入一个模型。然后在indexAction里面调用模型的方法来显示数据。这样就实现了最简单的查询列表。你可以通过这个地址来查看你的结果http://path/to/yoursite/mv...
以后我会写一个具体的demo来说明如何使用模型的其他方法,比如说查询、更新、增加、分页列表、多表连查等等。