首页 > 代码库 > THINKPHP5操作数据库代码示例

THINKPHP5操作数据库代码示例

表结构
CREATE TABLE `qrcode_file` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `active` int(1) DEFAULT ‘0‘ COMMENT ‘是否有效‘,
  `owner_id` int(20) DEFAULT ‘0‘ COMMENT ‘所有人ID‘,
  `owner_role_id` int(20) DEFAULT ‘0‘ COMMENT ‘所有人角色ID‘,
  `qrcode_url` varchar(500) DEFAULT ‘‘ COMMENT ‘二维码解析后‘,
  `scene_id` int(10) DEFAULT ‘0‘ COMMENT ‘场景值ID‘,
  `scene_str` varchar(200) DEFAULT ‘‘ COMMENT ‘场景值ID‘,
  `file_id` int(20) DEFAULT ‘0‘ COMMENT ‘保存文件id‘,
  `create_by` varchar(25) DEFAULT ‘‘,
  `update_by` varchar(25) DEFAULT ‘‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT=‘二维码文件表‘;


控制器代码

    //=================================1.新增数据================================//
        //$newQrcodeFile = new QrcodeFile();
        //var_dump($newQrcodeFile->get_data());//实例化的时候不给参数 返回data
        //$newQrcodeFile->active=0;
        //$newQrcodeFile->owner_id=123321;
        //$newQrcodeFile->owner_role_id=2;
        //$newQrcodeFile->scene_id=123456;
        //$newQrcodeFile->scene_str="test";
        //$newQrcodeFile->create_by="lizhaoyao";
        //$newQrcodeFile->update_by="lizhaoyao";
        //var_dump($newQrcodeFile->get_data());//成员变量操作之后再返回data
        //var_dump($newQrcodeFile->save());//调用save方法 保存数据 只返回成功与否 不返回自增id
        //var_dump($newQrcodeFile->getLastInsID());//调用getLastInsID 可以返回最后自增的id
        //echo $newQrcodeFile->getLastSql();
        //exit;

        //=================================2.删除数据================================//
        //$newQrcodeFile = new QrcodeFile();
        //$pk_id=9;
        //2.1 主键删除
        //$newQrcodeFile::get($pk_id);//找到主键id为9的数据
        //这一步设置完了后会把 模型中的
        //protected ‘isUpdate‘ => boolean true
        //protected ‘updateWhere‘ =>array("id"=>9)
        //$newQrcodeFile->delete();

        //2.2 destroy删除 可以批量
        //var_dump($newQrcodeFile::destroy($pk_id));//直接调用destroy方法删除
        // 支持批量删除多个数据
        //var_dump($newQrcodeFile::destroy(‘11,12,13‘));//删除id为 11 12 13的数据 批量删除 返回3  成功删除的条数
        //var_dump($newQrcodeFile::destroy(array(21,22,23)));//删除id为 21 22 23的数据 批量删除 返回3  成功删除的条数

        //2.3 主键条件删除
        //$delete_result=$newQrcodeFile->where(‘id‘,‘>‘,25)->delete();//把 id>25的数据删掉
        //var_dump($delete_result);//返回2  成功删除的条数
        //2.4 多条件删除
        //$delete_result=$newQrcodeFile->where(array("scene_id"=>"123456","owner_id"=>123))->delete();
        //var_dump($delete_result);//返回2  成功删除的条数
        //exit;

        //=================================3.修改数据================================//
        //$newQrcodeFile = new QrcodeFile();
        //3.1 先找到数据 再更新数据 用对象成员变量的形式 挨个操作
        //$user = $newQrcodeFile::get(20);//找到id为20的数据
        //$user->owner_id     = ‘789‘;//赋值 owner_id
        //$user->active     = ‘1‘;//赋值 active
        //var_dump($user->save());//去更新 更新的结果是0或者1

        //3.2 直接通过数组形式赋值更新
        //$save_result=$newQrcodeFile->save(array("owner_id"=>"951","active"=>3),array("id"=>24));//通过save第二个参数传条件进行更新
        //var_dump($save_result);//更新的结果是0或者1

        //3.3 通过 update方法调用where设定条件更新
        //$update_result=$newQrcodeFile->where(array("id"=>10))->update(array(‘scene_str‘ => ‘tp5‘));
        //var_dump($update_result);//更新的结果是0或者1
        //exit;

        //=================================4.查询数据================================//
        //$newQrcodeFile=new QrcodeFile();
        //4.1 使用get静态函数主键获取
        //$info = $newQrcodeFile::get(20);//通过主键查找 然后通过成员变量属性方式访问
        //var_dump($info->id);
        //var_dump($info->active);
        //var_dump($info->owner_id);
        //var_dump($info->qrcode_url);
        //var_dump($info->scene_id);

        //4.2 使用where条件配合find方法
        //$info=$newQrcodeFile->where(‘owner_id‘, ‘789‘)->find();//获取到的也是对象 也需要通过成员变量属性方式访问获取
        //var_dump($info->id);
        //var_dump($info->active);
        //var_dump($info->owner_id);
        //var_dump($info->qrcode_url);
        //var_dump($info->scene_id);


        //4.3 通过主键获取多个数据
        //$all_list=$newQrcodeFile::all("20,24,25");//获取到的是多个对象 可以遍历 然后获取成员变量得到字段值
        //foreach($all_list as $info)
        //{
        //    var_dump($info->id);
        //    var_dump($info->active);
        //    var_dump($info->owner_id);
        //    var_dump($info->qrcode_url);
        //    var_dump($info->scene_id);
        //}

        //4.4通过where条件select得到多个
        //$all_list=$newQrcodeFile->where("owner_role_id","2")->order("id","desc")->limit(2)->select();
        //foreach($all_list as $info)
        //{
        //    var_dump($info->id);
        //    var_dump($info->active);
        //    var_dump($info->owner_id);
        //    var_dump($info->qrcode_url);
        //    var_dump($info->scene_id);
        //}

        //4.5获取某个列的值
        //$column_value=http://www.mamicode.com/$newQrcodeFile->where("id",20)->value("scene_str");//获取到的直接是一个字符串或者整型
        //也可以采用 column方法
        //$column_value=http://www.mamicode.com/$newQrcodeFile->where("owner_role_id","3")->column("scene_str","id");//获取到的直接是以id为键的数组
        //var_dump($column_value);

        //4.6 问题来了 很多时候我们用到的查询结果都是对象 而PHP开发者都喜欢用数组 该怎么办呢?
        //可以使用 toArray() 方法来把对象转数组 例如
        //$info = $newQrcodeFile::get(20)->toArray();
        //$info=$newQrcodeFile->where(‘owner_id‘, ‘789‘)->find()->toArray();//如果表定义的时间格式的字段不是时间戳就会报错提示转换时间失败

        //$all_list=$newQrcodeFile::all("20,24,25");//列表获取的数据需要遍历然后再 toArray 转数组
        //foreach($all_list as $info)
        //{
        //    $info=$info->toArray();
        //    var_dump($info);
        //}
        //用all方法查出来的是不可以用 toArray 方法转换数组的
        //$all_list=$newQrcodeFile->where("owner_role_id","2")->order("id","desc")->limit(2)->select();
        //foreach($all_list as $info)
        //{
        //    $info=$info->toArray();
        //    var_dump($info);
        //}




模型代码 QrcodeFile.php

    <?php
    namespace app\index\model;
    use think\Model;
    class  QrcodeFile extends Model{
        //自定义初始化
        function get_data()
        {
        return $this->data;
        }
    }

 

THINKPHP5操作数据库代码示例