thinkphp学习06-连接数据库与模型初探

这篇具有很好参考价值的文章主要介绍了thinkphp学习06-连接数据库与模型初探。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

新建数据库

CREATE DATABASE `tp6stu01` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';

创建表和数据

DROP TABLE IF EXISTS `tp_user`;
CREATE TABLE `tp_user`  (
  `id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自动编号',
  `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `password` char(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `gender` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '男',
  `email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `price` decimal(8, 2) UNSIGNED NOT NULL DEFAULT 0.00,
  `details` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `uid` smallint(6) NULL DEFAULT NULL,
  `status` tinyint(3) NOT NULL DEFAULT 0 COMMENT '状态',
  `list` json NULL,
  `delete_time` datetime(0) NULL DEFAULT NULL,
  `create_time` datetime(0) NOT NULL DEFAULT '1997-01-01 01:01:01' COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT '1997-01-01 01:01:01' COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 302 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

插入数据

INSERT INTO `tp_user` VALUES (1, '蜡笔小新', '123', '男', 'xiaoxin@163.com', 60.00, '123', 1001, -1, NULL, NULL, '2016-06-27 16:45:26', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (2, '路飞', '123', '男', 'lufei@163.com', 70.00, '123', 1002, 0, NULL, NULL, '2016-06-27 16:55:56', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (3, '黑崎一护', '456', '男', 'yihu@163.com', 80.00, '123', 1003, 1, NULL, NULL, '2016-07-27 17:22:16', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (4, '小明', '123', '男', 'xiaoming@163.com', 90.00, '123', 1004, 2, NULL, NULL, '2016-08-27 23:50:52', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (5, '孙悟饭', '123', '男', 'wufan@163.com', 100.00, '123', 1005, -1, NULL, NULL, '2016-08-28 18:02:53', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (6, '孙悟天', '123', '男', 'wutian@163.com', 110.00, '123', NULL, 0, NULL, NULL, '2016-09-28 22:07:38', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (7, '樱桃小丸子', '123', '女', 'yingtao@163.com', 77.00, '123', 1007, 1, NULL, NULL, '2016-10-29 10:53:58', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (8, '孙悟空', '123', '男', 'wukong@163.com', 100.00, '123', 1008, 2, NULL, NULL, '2018-12-11 10:09:36', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (9, '李白', '123', '男', 'UPPER(EMAIL)', 52.00, '123', 1011, 0, NULL, NULL, '2019-10-28 10:00:39', '2019-12-25 13:28:04');
INSERT INTO `tp_user` VALUES (10, '辉夜', '123', '女', 'HUIYE@163.COM', 91.00, '123', 1009, -3, NULL, NULL, '2019-09-20 22:01:42', '1997-01-01 01:01:01');
INSERT INTO `tp_user` VALUES (11, '李黑', '123', '男', 'LIBAI@163.COM', 102.00, '123', 2022, 3, NULL, NULL, '1997-01-01 01:01:01', '2020-01-16 17:19:08');

修改.env数据库配置

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 10.10.90.139
DATABASE = tp6stu01
USERNAME = root
PASSWORD = password
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
PREFIX = tp_

[LANG]
default_lang = zh-cn

测试环境下是可以使用的,但是到了线上建议配置到config下database.php

// 数据库类型
'type'            => env('database.type', 'mysql'),
// 服务器地址
'hostname'        => env('database.hostname', '10.10.90.139'),
// 数据库名
'database'        => env('database.database', 'tp6stu01'),
// 用户名
'username'        => env('database.username', 'root'),
// 密码
'password'        => env('database.password', 'password'),
// 端口
'hostport'        => env('database.hostport', '3306'),
// 数据库连接参数
'params'          => [],
// 数据库编码默认采用utf8
'charset'         => env('database.charset', 'utf8'),
// 数据库表前缀
'prefix'          => env('database.prefix', 'tp_'),

thinkphp学习06-连接数据库与模型初探,php,数据库,学习,java
可以通过删除改变.env 的配置,或删除.env 来验证 database 的执行优先级,经过验证可知:.env>database.php

//default 表示设置默认的数据库连接,这里用的是connections下mysql的配置
'default'         => env('database.driver', 'mysql'),

新建DataTest.php

<?php

namespace app\controller;

use think\facade\Db;

class DataTest
{
    public function index()
    {
        $user = Db::table('tp_user')->select();
        //也可以切换为name就不用写前缀了
        //$user = Db::name('user')->select();
        return json($user);
    }
}

thinkphp学习06-连接数据库与模型初探,php,数据库,学习,java
connections 配置数据库连接信息,可以是多个数据库,便于切换,新建demo配置

'demo' => [
    // 数据库类型
    'type'            => env('database.type', 'mysql'),
    // 服务器地址
    'hostname'        => env('database.hostname', '10.10.90.139'),
    // 数据库名
    'database'        => env('database.database', 'tp6stu02'),
    // 用户名
    'username'        => env('database.username', 'root'),
    // 密码
    'password'        => env('database.password', 'password'),
    // 端口
    'hostport'        => env('database.hostport', '3306'),
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => env('database.charset', 'utf8'),
    // 数据库表前缀
    'prefix'          => env('database.prefix', 'tp_'),

    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 是否需要断线重连
    'break_reconnect' => false,
    // 监听SQL
    'trigger_sql'     => env('app_debug', true),
    // 开启字段缓存
    'fields_cache'    => false,
],

thinkphp学习06-连接数据库与模型初探,php,数据库,学习,java
新建demo方法

public function demo()
{
    $demo = Db::connect('demo')->table('tp_user')->select();
    return json($demo);
}

thinkphp学习06-连接数据库与模型初探,php,数据库,学习,java

模型初探

在 app 目录下创建一个 model 目录,并创建 User.php 的模型类

<?php

namespace app\model;

use think\Model;

class User extends Model
{
}

datatest.php添加getUser方法

use app\model\User;

public function getUser()
{
    $user = User::select();
    return json($user);
}

thinkphp学习06-连接数据库与模型初探,php,数据库,学习,java
数据库默认链接的default下的配置就是mysql,现在想切换为demo,需要给User添加一个属性文章来源地址https://www.toymoban.com/news/detail-795293.html

<?php

namespace app\model;

use think\Model;

class User extends Model
{
    protected $connection = 'demo';
}

到了这里,关于thinkphp学习06-连接数据库与模型初探的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL基础篇——MySQL数据库客户端连接,数据模型,SQL知识

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.客户端连接MySQL 二. 数据模型 1.关系型数据库(RDBMS) 2.数据模型 三.SQL 1.SQL通用语法 2.SQL分类 3.数据库操作 1). 查

    2024年02月06日
    浏览(68)
  • ThinkPHP6之数据库操作上

    注意,tp6在进行语法学习的时候都是在app/index.php中写代码的,代码写在index函数下面,而且 tp6自带的文件都是由自动加载器的,不需要包含autoload.php文件 要对数据库进行操作,要修改两个地方,一个数.env文件,一个是config/database.php文件 config/database.php connections里面的一个子

    2024年02月01日
    浏览(82)
  • 学习笔记-MySql数据库介绍与连接

    一.MySQL数据库介绍 MySQL是一个关系型数据库管理系统,在 WEB 应用方面,MySQL是最好的 RDMS (Relational Database Management System,关系数据库管理系统) 应用软件,它是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,MySQL 是最流行的关系型数据库管理系统中的一个。 1.特点 开源,

    2024年01月19日
    浏览(41)
  • thinkphp6 入门(4)--数据库操作 增删改查

    一、设计数据库表 比如我新建了一个数据库表,名为test 二、配置数据库连接信息  本地测试 直接在.env中修改,不用去config/database.php中修改 正式环境 三、增删改查  引入Db库 假设新增的控制器路径为 apptestcontrollerCURD.php 2. 增 Db::name(\\\'test\\\')其中\\\'test\\\'为数据库表的名字,使用

    2024年02月09日
    浏览(40)
  • openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

    102.1 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时

    2024年02月07日
    浏览(59)
  • thinkphp5框架的model支持多地区数据库切换

    一般情况下,都是在model中指定一个数据库连接参数即可。但某些情况下,相同的库表会在不同地区都有部署,这个时候需要按地区进行切换(只有一个model情况下)。 Model层代码 使用A地区的数据库: $model = new A(); 使用B地区的数据库: $model = new B(); 需要更改地方:config.ph

    2024年02月12日
    浏览(35)
  • 4 种 Python 连接 MySQL 数据库的方法,速来学习!!

    用 Python 连接到 MySQL 数据库的方法不是很系统 ,实际中有几种不同的连接方法,而且不是所有的方法都能与不同的操作系统很好地配合。除此之外,启用SSL也是一个挑战。 本文 涵盖了四种方法 ,你可以用它们来连接你的Python应用程序和MySQL。这些例子将使用PlanetScale,一个

    2024年02月05日
    浏览(50)
  • 【PHP系统学习】——Laravel框架数据库的连接以及数据库的增删改查的详细教程

    👨‍💻个人主页 :@开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏 :PHP程序开发 —   按照 MVC 的架构,对数据的操作应该放在 Model 中完成,但如果不使用 Model,我们也可以用 laravel框架提供的 D8 类

    2024年04月15日
    浏览(48)
  • 怎么学习Java数据库连接(JDBC)? - 易智编译EaseEditing

    学习Java数据库连接(JDBC)是掌握Java与数据库交互的关键步骤。以下是学习Java JDBC的一些建议: 先掌握Java基础: 在学习JDBC之前,确保你已经掌握了Java的基本语法、面向对象编程和其他核心概念。这将有助于更好地理解JDBC的工作原理。 学习数据库基础知识: 了解关系型数

    2024年02月16日
    浏览(42)
  • thinkphp:数据库查询,嵌套别的表的查询(别的表做子查询)

    从  vendors  表中选择记录。 在  vendors  表中,筛选出具有满足以下条件的  vendor_code  值: 对应的采购订单(在  po_headers_all  表中)存在未完全接收的采购行(在  po_lines_all  表中)。 相应的采购订单状态为 \\\"已签核\\\"。 采购行的数量大于已接收数量。 查询结果按照  v

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包