框架操作数据库
<h2>ORM库位置</h2>
<ul>
<li>/vendor/topthink/think-orm</li>
</ul>
<h2>数据库连接配置信息位置</h2>
<ul>
<li>/config/database.php</li>
<li>.env // 优化使用此文件</li>
</ul>
<h2>创建数据库</h2>
<ul>
<li>数据库名称
<ul>
<li>mall</li>
</ul></li>
<li>数据库编码
<ul>
<li>utf8mb4 -- UTF-8 Unicode</li>
</ul></li>
<li>排序规则
<ul>
<li>utf8mb4_general_ci</li>
</ul></li>
<li>修改.env数据库配置文件</li>
</ul>
<h2>创建数据表</h2>
<pre><code class="language-sql">CREATE TABLE `mall_user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` varchar(100) NOT NULL DEFAULT '' COMMENT '用户名',
`phone_number` varchar(20) NOT NULL COMMENT '手机号',
`password` char(32) NOT NULL DEFAULT '',
`ltype` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '登录方式 默认0 手机号码登录 1用户名密码登录',
`type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '会话保存天数',
`sex` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '性别',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间',
`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`status` tinyint(3) unsigned NOT NULL DEFAULT '0',
`operate_user` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`) USING BTREE,
KEY `usernme` (`username`),
KEY `phone_number` (`phone_number`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;</code></pre>
<h2>查询一条数据</h2>
<ul>
<li>使用门面模式获取</li>
</ul>
<pre><code class="language-php">use think\facade\Db;
Db::table('mall_user')->where('id', 1)->find();
// 使用这个命名空间会报错
use think\Db;
// 报错 Call to undefined method think\Db::table()</code></pre>
<ul>
<li>通过容器获取</li>
</ul>
<pre><code class="language-php">app('db')->table('mall_user')->where('id', 12)->find();</code></pre>
<h2>查看执行的sql语句</h2>
<ul>
<li>打印最后一条执行的sql语句</li>
</ul>
<pre><code class="language-php">Db::table('mall_user')->getLastSql();
Db::table('mall_user')->where('id', 100)->fetchSql()->find();</code></pre>
<ul>
<li>调试模式下,选择SQL选项栏,查看所有的sql语句</li>
</ul>
<h2>模型使用说明</h2>
<ul>
<li>实际工作中,模型使用的场景要大于Db的使用场景</li>
<li>模型的灵活性要强于Db</li>
</ul>
<h2>使用Model时,查询获取得对象,也可以通过数组方式访问对象</h2>
<ul>
<li>向数组一样访问对象</li>
<li>/vendor/topthink/think-orm/src/Model.php</li>
<li>Model类继承了ArrayAccess
<ul>
<li>offsetGet()</li>
</ul></li>
</ul>