PHPCMS_V9 二开 控制器-连接数据库-查询

PHPCMS_V9 二开 控制器-连接数据库-查询

  1. 前台首页的控制器路径 - /phpcms/modules/content/index.php
  2. 前台首页模板路径 - /phpcms/templates/default(默认)/content/index.html
  3. 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’); 会自动把控制器里面的变量传到前端模板中.
视图层 遍历方法:

猜你喜欢

转载自blog.csdn.net/weixin_45609681/article/details/103250318
今日推荐