PHPCMS_V9 二开 控制器-连接数据库-查询
- 前台首页的控制器路径 - /phpcms/modules/content/index.php
- 前台首页模板路径 - /phpcms/templates/default(默认)/content/index.html
- sql类的路径 - /phpcms/libs/classes/model.class.php >可以查询相关类的使用方法
- 控制器查询数据库准备工作
- 第一种: 控制器里面已经有 __construct方法
那么只需要在你要查询数据库的时候,指定一个数据表名称就可以了!public function __construct() { $this->db = pc_base::load_model('content_model'); $this->_userid = param::get_cookie('_userid'); $this->_username = param::get_cookie('_username'); $this->_groupid = param::get_cookie('_groupid'); }
写法:
$this->db->table_name = '表名';
//指定表名
原生sql查询方法:$res = $this->db->query($sql);
//执行sql语句
接收查询过来的结果集$this->db->fetch_array($res);
//获取结果集(phpcms必须使用自己的类库)- 第二种:控制器没有构造方法
$db = ''; $db = pc_base::load_model('content_model'); $db->table_name = '表名';
- 举例
listinfo($where = ‘’, $order = ‘’, $page = 1, $pagesize = 10, $data = ‘*’);
$date =$db->listinfo();
$pages = $db->pages;
**select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='')** 查询多条
```php
/**
* 执行sql查询
* @param $where 查询条件[例`name`='$name']
* @param $data 需要查询的字段值[例`name`,`gender`,`birthday`]
* @param $limit 返回结果范围[例:10或10,10 默认为空]
* @param $order 排序方式 [默认按数据库默认方式排序]
* @param $group 分组方式 [默认为空]
* @param $key 返回数组按键名排序
* @return array 查询结果集数组
*/
```
**update($data, $where = '')** 改
```php
/**
* 执行sql查询
* @param $data 要更新的数据内容,参数可以为数组也可以为字符串,建议数组。
* 为数组时数组key为字段值,数组值为数据取值,为数组时[例: array('name'=>'phpcms','password'=>'123456')]
* @param $where 查询条件[例array('id'=>$id)]
* @return array boolean
*/
$id= 1;
$date =[
'name'=>'李四'
];
$date = $db->update($date,array('id'=>$id));
```
** get_one($where = ‘’, $data = ‘*’, $order = ‘’, $group = ‘’)** 查一条信息
/**
* 获取单条记录查询
* @param $where 查询条件 可以为数组 或者是字符串 数组array('id'=>$id)
* @param $data 需要查询的字段值[例`name`,`gender`,`birthday`]
* @param $order 排序方式 [默认按数据库默认方式排序]
* @param $group 分组方式 [默认为空]
* @return array/null 数据查询结果集,如果不存在,则返回空
*/
**delete($where) ** 删除
/**
* 执行删除记录操作
* @param $where 删除数据条件,不充许为空。数组或者字符串
* @return boolean
*/
$id = 1;
$date = $db->delte(array('id'=>$id));
//或者
$where= 'id='.$id;
$date = $db->delete($where);
insert($data, $return_insert_id = false, $replace = false) 增
/**
* 执行添加记录操作
* @param $data 要增加的数据,参数为数组。数组key为字段值,数组值为数据取值
* @param $return_insert_id 是否返回新建ID号
* @param $replace 是否采用 replace into的方式添加数据
* @return boolean
*/
$arr= [
'name'=>'张三',
'sex'=>'男'
];
$date = $db->insert($arr);
insert_id() 获取最后一次主键id
/**
* 获取最后一次添加记录的主键号
* @return int
*/
原始sql语句查询 query($sql) ;
/**
* 执行原始sql
* @return 如果为查询语句,返回资源句柄,否则返回true/false
*/
$sql = select * from table ;
$res = $db->query($sql);
//函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有
$date = $db->fetch_array($res);//获取
函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有
另前台视图模板 可以直接 include template(‘content’, ‘index’); 会自动把控制器里面的变量传到前端模板中.
视图层 遍历方法: