初识thinkphp

Posted sijidou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识thinkphp相关的知识,希望对你有一定的参考价值。

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

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

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

 

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

 

 

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

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

要访问数据库,要加上

use think\\Db

 接下来显示进行增删改查

<?php
namespace app\\index\\controller;

use think\\Controller;
use think\\Db;

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 app\\index\\controller;

use think\\Controller;
use think\\Db;

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\');

 

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

 

 

以上是关于初识thinkphp的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

2016-11-30-初识Thinkphp

初识thinkphp

初识thinkphp

thinkPHP框架之初识篇