分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

初识thinkphp(4)

发布时间:2023-09-06 01:59责任编辑:蔡小小关键词:thinkphp

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

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

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

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

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

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

要访问数据库,要加上

use think\Db

 接下来显示进行增删改查

<?phpnamespace 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操作(因为该操作不需要变量,也不需要输出),代码如下

<?phpnamespace 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(4)

原文地址:https://www.cnblogs.com/sijidou/p/9175544.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved