thinphp5数据库操作(一)

来源:互联网 发布:知乎周刊在哪里看 编辑:程序博客网 时间:2024/06/08 00:58

  学习thinphp5操作数据库之前先创建一张表,利用Navicat for Mysql在 tp5数据库下创建名字是 tp_user 的表。sql语句是:

CREATE TABLE `tp_user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(200) NOT NULL,  `age` int(3) DEFAULT NULL,  `create_time` int(50) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

数据是:
thinkphp5操作数据库首先需要配置链接数据库的database.php文件

配置之后为:

  

 'type'            => 'mysql',    // 服务器地址    'hostname'        => '127.0.0.1',    // 数据库名    'database'        => 'tp5',    // 用户名    'username'        => 'root',    // 密码    'password'        => '',    // 端口    'hostport'        => '',    // 连接dsn    'dsn'             => '',    // 数据库连接参数    'params'          => [],    // 数据库编码默认采用utf8    'charset'         => 'utf8',    // 数据库表前缀    'prefix'          => 'tp_',

需要注意的是最后一行设置了表的前缀。
之后的代码都是在 tp5/application/index/controller/Index.php 的 index的方法内
index方法是自己创建的
tp5是项目的名字.
准备工作结束了。

基本查询:
(查询之前别忘了:use think\Db;)

 $user = Db::table('tp_user')->select();
table内的参数是你要查询的表的完整名字
这句话的含义可以这样理解:
Db::table('tp_user') 告诉thinphp5要查询 tp_user 这张表,select()含义是要查询表中所有数据,最后将查询的所有语句赋值给$user.

$user = Db::name('user')->select();
这两个语句查询的结果是一样的,这个语句查询的也是表 tp_user 因为之前在database.php设置了前缀,就是我刚才提到要注意的地方.
thinkphp5提供了助手函数用于查询:

$user = db('user')->select();
这段代码跟上一行代码结果是一样的, 设置的数据库表前缀在这里也生效了.

$user = db('user')->find();
find()只会查询表中第一条数据


利用var_dump($user);查看一下数据


(Db::table('tp_user')   Db::name('user')     db('user') 可以调用的方法是一样的)


添加一条数据:

//  这是要添加的数据        $data = ['name' => '小赵', 'age' => 30, 'create_time' => '000'];        db('user')->insert($data);


Db::table('tp_user')
Db::name('user')
也是可以的自己测试下


添加多条数据:

//        要插入的多条数据        $data = [            ['name' => '小刘', 'age' => 30, 'create_time' => '000'],            ['name' => '小孙', 'age' => 66, 'create_time' => '000']        ];        db('user')->insertAll($data);
数据变成多维数组
方法变成
insertAll()