学习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()