zoukankan      html  css  js  c++  java
  • thinkphp对mysql的CURD操作

    利用thinkphp(3.2.3)来操作数据库,首先要连接数据库。我们需要对某数据库写一个配置文件,thinkphp会根据该配置文件自动连接上数据库。而model文件就不用自定义,内置的即可解决问题。配置文件写于目录applicationhomeconfconfig.php下:

    <?php
    return array(
    //'配置项'=>'配置值'
    'DB_TYPE'=> 'mysql',//数据库类型
    'DB_HOST'=> '127.0.0.1',//服务器地址
    'DB_NAME'=>'jiu151231',//数据库名称
    'DB_USER'=>'root',//用户名
    'DB_PWD'=>'',//密码
    'DB_PORT'=>'3306',//端口
    'DB_PREFIX'=>'',//数据库表前缀
    );

    到此,准备工作完成。其中,那个数据库表前缀,网上关于默认各种说法,我的默认为空。估计其他前缀,打开phpmyadmin可以看到吧。

    CURD操作代码都在目录applicationhomecontrollerindexcontroller.class.php里,这是控制器文件。下面都是采用M方法实例化表对象的。

    C

    插入数据

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $jiu0=M('myguests');
            $j0['firstname']='lv';
            $j0['lastname']='oe';
            $jiu0->add($j0);
        }
    }

    插入多条数据

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $jiu0=M('myguests');
            $list[]=array('firstname'=>'li','lastname'=>'weifeng');
            $list[]=array('firstname'=>'liu','lastname'=>'tian');
            $jiu0->addAll($list);
        }
    }

    R

    读单条记录 find方法返回第一个符合条件的记录

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu=M('myguests');
            $data=$gu->where('firstname="lv"')->find();
            dump($data);
        }
    }
    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu=M('myguests');
            $gu->where('firstname="lv"')->find();
            dump($gu->data());
        }
    }

    读多条数据 select方法 如果查询出错,select的返回值是false,如果查询结果为空,则返回NULL,否则返回二维数组。

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $list = $gu->where('firstname="lv"')->order('id')->limit(5)->select();//返回5条数据
            dump($list);
        }
    }

     读取字段值

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $list = $gu->where('id=5')->getField('firstname');
            dump($list);
        }
    }
    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $list = $gu->getField('id',true);//返回整列
            dump($list);
        }
    }
    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $list = $gu->getField('id,firstname',5);//返回多列,5条记录
            dump($list);
        }
    }

    U

    save方法

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $data['firstname']='liu';
            $data['lastname']='hl';
            $gu->where('id=5')->save($data);
        }
    }
    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $gu->firstname='liu';
            $gu->lastname='hl';
            $gu->where('id=6')->save();
        }
    }

    更新字段

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $gu->where('id=6')->setField('firstname','wang');
        }
    }

    更新多个字段

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $data=array('firstname'=>'lv','lastname'=>'huan');
            $gu->where('id=1')->setField($data);
        }
    }

    而对于统计字段(通常指的是数字类型)的更新,系统还提供了 setInc 和 setDec 方法。

    $User = M("User"); // 实例化User对象
    $User->where('id=5')->setInc('score',3); // 用户的积分加3
    $User->where('id=5')->setInc('score'); // 用户的积分加1
    $User->where('id=5')->setDec('score',5); // 用户的积分减5
    $User->where('id=5')->setDec('score'); // 用户的积分减1

    3.2.3版本开始,setInc和setDec方法支持延迟更新,用法如下:

    $Article = M("Article"); // 实例化Article对象
    $Article->where('id=5')->setInc('view',1); // 文章阅读数加1
    $Article->where('id=5')->setInc('view',1,60); // 文章阅读数加1,并且延迟60秒更新(写入)

    D

    delete方法

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $gu = M("myguests");
            $gu->delete(2);//删除主键2对应的记录
        }
    }

    delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件,例如:

    $User = M("User"); // 实例化User对象
    $User->where('id=5')->delete(); // 删除id为5的用户数据
    $User->delete('1,2,5'); // 删除主键为1,2和5的用户数据
    $User->where('firstname="lv"')->delete(); // 删除所有firstname为"lv"的用户数据



  • 相关阅读:
    面试题:Spring的理解
    静态块与静态变量
    构造方法与构造块的执行顺序(区别于static)
    子类调用父类的构造函数几种情况
    使用json遇到的问题
    页面加载,使用ajax查询某个类别,并且给它们添加(拼接)连接
    对某个商品的上下架状态进行改变
    SSH后台管理系统,实现查询+分页
    跟上Java8
    java中值传递和引用传递
  • 原文地址:https://www.cnblogs.com/jiu0821/p/5097498.html
Copyright © 2011-2022 走看看