• 初识thinkphp(4)


    这次内容是数据库的使用方法

    因为在第一章讲过就是拿index这个文件写的数据库的访问,这次实验我使用文件是系统默认的首页

    配置的内容也在那里有提过就不重发戳图了。

    数据库按照手册上的建议建了3行的内容(使用的SQLyog来进行连接的)

    现在想想在配置databas.php这个文件时候有这么一段

    当时想着这个有什么意义,我想这样大概能分模块引用数据库,不至于使得结构混乱

    要访问数据库,要加上

    use thinkDb

     接下来显示进行增删改查

    <?php
    namespace appindexcontroller;
    
    use thinkController;
    use thinkDb;
    
    class Index extends Controller
    {
        public function index()
        {
            $data = Db::execute('INSERT into think_data (id, data, status) value(7, "sijidou4", 1)');
            var_dump($data);
            $data = Db::execute('UPDATE  think_data set data = "四季豆" where id = 4');
            var_dump($data);
            $result = Db::query('SELECT * from think_data');
            dump($result);
            echo "<br/>";
            $data = DB::execute('DELETE from think_data where id = 7');
            $result = Db::query('SELECT * from think_data');
            dump($result);
            echo "hello world";
            return ;
        }
    }

    execute执行操作,如果用var_dump将结果字符串输出,会显示“int()”之类的

    而query操作会使结果返回一个数组,即可以显示表里字段的内容。

    这里的代码可以精简下去掉execute操作(因为该操作不需要变量,也不需要输出),代码如下

    <?php
    namespace appindexcontroller;
    
    use thinkController;
    use thinkDb;
    
    class Index extends Controller
    {
        public function index()
        {
            Db::execute('INSERT into think_data (id, data, status) value(7, "sijidou4", 1)');
            Db::execute('UPDATE  think_data set data = "四季豆呀" where id = 4');
            $result = Db::query('SELECT * from think_data');
            dump($result);
            echo "<br/>";
            Db::execute('DELETE from think_data where id = 7');
            $result = Db::query('SELECT * from think_data');
            dump($result);
            echo "hello world";
            return ;
        }
    }

    学到了一句SQL命令

    // 清空数据表
    Db::execute('TRUNCATE table think_data');

    可以用DB::connect(数据库类型//账号:密码@地址:端口/库名#编码)来重新打开新的数据库。

    可以用这种方式来表示打开不同数据库,且比较方便。

    $db1 = Db::connect('db1');
    $db2 = Db::connect('db2');
    $db1->query('select * from think_data where id = 1');
    $db2->query('select * from think_data where id = 1');

    用[]来实现动态绑定,保护安全

    例如

    Db::execute('INSERT into think_data VALUES(?, ? ,?)',[7,'aaa',1]);

    Db::execule('INSERT into think_data VALUES(:id, :data, :status),['id' => 7, 'data' => 'aaa', 'status' => 1]');

    thinkphp5还提供一种查询构造器,即把每一步用函数来表示,并每个步骤间用->相连

    //该代码来着官方文档(本人比较喜欢上面的原生态代码)
    //
    插入记录 Db::table('think_data') ->insert(['id' => 18, 'name' => 'thinkphp', 'status' => 1]); // 更新记录 Db::table('think_data') ->where('id', 18) ->update(['name' => "hello"]); // 查询数据 $list = Db::table('think_data') ->field('name,email') ->where('id', 18) ->select(); // 删除数据 Db::table('think_data') ->where('id', 18) ->delete();

     注意下用select()进行查询,必须把select放在最后,之前放要进行select的对象的信息。

    最先提到prefix这个设置表开头前缀的在这里可以有如下作用

    Db::table('think_data') 等价于Db::name('data');

    内容不多,今天就到这吧。

     
  • 相关阅读:
    Jasmine入门(上)
    手把手教你如何安装和使用Karma-Jasmine
    AngularJS入门之动画
    AngularJS入门之Services
    AngularJS入门之数据验证
    AngularJS入门之数据绑定
    AngularJS的Filter用法详解
    WPF快速实现XML可视化编辑工具
    AngularJS自定义Directive
    低级错误总结
  • 原文地址:https://www.cnblogs.com/sijidou/p/9175544.html
Copyright © 2020-2023  润新知