6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法

围焚搂钙东倪拼彪晃拜冷裙陡

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第1张

数据库下载

修改表结构并插入新数据

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第2张

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第3张

query()与execute() 其定义位于:D:\phpStudy\PHPTutorial\WWW\tp5\thinkphp\library\think\db\Connection.php

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第4张

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第5张

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        //1.查询操作:查看工资大于4000的员工信息
        $sql="select name,salary,dept from staff where salary > 4000";
        $result=Db::query($sql);
        dump($result);
    }
}

执行:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第6张

检查结果是否正确

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第7张

执行:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第8张

结果一致,表明正确


使用参数绑定,防止SQL注入

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        //1.查询操作:查看工资大于4000的员工信息
        $sql="select name,salary,dept from staff where salary > ?";
        $result=Db::query($sql,[4000]);
        dump($result);
    }
}

执行:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第6张


推荐使用命名占位符进行绑定

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        //1.查询操作:查看工资大于4000的员工信息
        $sql="select name,salary,dept from staff where salary > :salary";
        $result=Db::query($sql,['salary'=>4000]);
        dump($result);
    }
}

执行:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第6张


2.更新操作

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第11张

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        //更新操作,将id=4的洪七公工资加1000
        $sql="update staff set salary=salary+1000 where id=:id";
        $result=Db::execute($sql,['id'=>4]);
        dump($result);//成功返回受影响的行数
    }
}

执行:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第12张

此时洪七公工资变为3000

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第13张


3.插入操作

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        //插入操作:默认添加到表的尾部
        $sql="insert into staff (name,sex,age) values (:name,:sex,:age)";
        $result=Db::execute($sql,['name'=>'mengmianren','sex'=>1,'age'=>33]);
        dump($result);//返回受影响的行数
    }
}

执行:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第12张

mengmianren插入到数据表中:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第15张


4.删除操作

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        //删除操作:删除id=9的mengmianren
        $sql="delete from staff where id=:id";
        $result=Db::execute($sql,['id'=>9]);
        dump($result);//返回受影响的行数

    }
}

执行:

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第12张

此时mengmianren被删除

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第17张


6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第18张

6-3ThinkPHP5数据库的原生查询实现原理:query和execute方法第19张



痹粟蹿氛极村牧僧仕谰挨青诗