学习路之PHP--easyswoole操作数据库

学习路之PHP--easyswoole操作数据库

  • 0、安装orm插件
  • 一、创建数据库
  • 二、创建模型
  • 三、控制器显示
  • 四、效果
  • 五、问题

0、安装orm插件

composer require easyswoole/orm

一、创建数据库

在这里插入图片描述

  1. 表:
CREATE TABLE `cases`  (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`title` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标题',`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '内容',`create_time` int(10) NOT NULL COMMENT '创建时间',PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  1. 随便写入几条数据
INSERT INTO `test`.`cases`(`id`, `title`, `content`, `create_time`) VALUES (1, '示剑网络副总经理接受电视台采访', 'test', 1536223828);
INSERT INTO `test`.`cases`(`id`, `title`, `content`, `create_time`) VALUES (3, '微信小程序超级入口,新一轮红利又将爆发', 'test', 1605757832);
INSERT INTO `test`.`cases`(`id`, `title`, `content`, `create_time`) VALUES (4, '北京小程序开发公司哪家好?', 'test', 1535963051);
  1. 配置mysql数据库连接
    打开easyswoole根目录下的dev文件,跟MAIN_SERVER同级,新增
'MYSQL'=>['host' => '你自己的IP','port' => '端口','user' => 'root','password' => '123456','database' => 'test','timeout' => 5,'charset' => 'utf8mb4',
],
  1. 注册配置的mysql数据库
    EasySwooleEvent.php
use EasySwoole\ORM\DbManager;
use EasySwoole\ORM\Db\Connection;class EasySwooleEvent implements Event
{public static function initialize(){// TODO: Implement initialize() method.date_default_timezone_set('Asia/Shanghai');$config = new \EasySwoole\ORM\Db\Config(Config::getInstance()->getConf('MYSQL'));DbManager::getInstance()->addConnection(new Connection($config));}

二、创建模型

App\Models\Case.php

<?php
namespace AppModels;
use EasySwoole\ORM\AbstractModel;
use EasySwoole\Mysqli\QueryBuilder;
/*** 案例模型*/
class Cases extends AbstractModel
{/*** @var string*/ protected $tableName = 'cases'; //表名protected $primaryKey = 'id'; //主键public function getAll(int $page = 1, string $keyword = null, int $pageSize = 3): array{$list = $this->limit($pageSize * ($page - 1), $pageSize)->order($this->primaryKey, 'DESC')->withTotalCount()->all(function (QueryBuilder $queryBuilder) use ($keyword) { //用use才能将外部参数传入闭包$queryBuilder->where('title', "%{$keyword}%", 'like');});$total = $this->lastQueryResult()->getTotalCount(); //获取结果条数return ['total' => $total, 'list' => $list];}}

三、控制器显示

App\HttpController\Index.php

use EasySwoole\Http\AbstractInterface\Controller;
use App\Models\Cases;class Index extends Controller
{public function index(){$request = $this->request();$keyword = $request->getRequestParam('keyword');$page = $request->getRequestParam('page')??1;$case = new Cases();$result = $case->getAll($page, $keyword);$this->writeJson(0, $result, "success");

四、效果

在这里插入图片描述

五、问题

  1. ERROR php_swoole_server_rshutdown() (ERRNO 503): Fatal error: Class ‘EasySwoole\ORM\AbstractModel’ not found in /www/wwwroot/easyswoole/App/Models/Cases.php on line 11

解决方案是重启进程
在这里插入图片描述
2. connection : default not register

connection : default not register
#0 /www/wwwroot/easyswoole/vendor/easyswoole/orm/src/Utility/PreProcess.php(18): EasySwoole\ORM\AbstractModel->schemaInfo()
#1 /www/wwwroot/easyswoole/vendor/easyswoole/orm/src/AbstractModel.php(553): EasySwoole\ORM\Utility\PreProcess::mappingWhere(Object(EasySwoole\Mysqli\QueryBuilder), Object(Closure), Object(App\Models\Cases))
#2 /www/wwwroot/easyswoole/App/Models/Cases.php(25): EasySwoole\ORM\AbstractModel->all(Object(Closure))
#3 /www/wwwroot/easyswoole/App/HttpController/Index.php(19): App\Models\Cases->getAll(1, NULL)

解决方案。注册mysql数据库配置,
EasySwooleEvent.php


use EasySwoole\ORM\DbManager;
use EasySwoole\ORM\Db\Connection;$config = new \EasySwoole\ORM\Db\Config(Config::getInstance()->getConf('MYSQL'));
DbManager::getInstance()->addConnection(new Connection($config));

最后重启进程
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手写multi-head Self-Attention,各个算子详细注释版

文章目录 MultiHeadAttentionFormal的实现操作详解1. &#x1f50d; attention_mask2. &#x1f50d; matmul✅ 其他实现方式1. 使用 运算符&#xff08;推荐简洁写法&#xff09;2. 使用 torch.einsum()&#xff08;爱因斯坦求和约定&#xff09;3. 使用 torch.bmm()&#xf…

尚硅谷redis7 41-46 redis持久化之AOF异常恢复演示

AOF每一秒钟写入一次。当内容才写了一小半,没有写完整时&#xff0c;突然,redis挂了,导致aof文件错误。 故意乱写正常的AOF文件,模拟网络闪断文件写error 重启 Redis 之后就会进行AOF文件的载入,发现启动都失败 首先cd /usr/local/bin 异常修复命令:redis-check-aof -- fix 进…

004时装购物系统技术解析:构建智能时尚消费平台

时装购物系统技术解析&#xff1a;构建智能时尚消费平台 在电商行业蓬勃发展的当下&#xff0c;时装购物系统凭借其便捷性与多样性&#xff0c;成为消费者选购时尚单品的重要渠道。该系统通过商品信息、订单管理等核心模块&#xff0c;结合前台展示与后台录入功能&#xff0c;…

数据湖 (特点+与数据仓库和数据沼泽的对比讲解)

数据湖就像一个“数据水库”&#xff0c;把企业所有原始数据&#xff08;结构化的表格、半结构化的日志、非结构化的图片/视频&#xff09;原样存储&#xff0c;供后续按需分析。 对比传统数据仓库&#xff1a; 数据仓库数据湖数据清洗后的结构化数据&#xff08;如Excel表格&…

深度剖析Node.js的原理及事件方式

早些年就接触过Node.js&#xff0c;当时对于这个连接前后端框架就感到很特别。尤其是以独特的异步阻塞特性&#xff0c;重塑了了服务器端编程的范式。后来陆陆续续做了不少项目&#xff0c;通过实践对它或多或少增强了不少理解。今天&#xff0c;我试着将从将从原理层剖析其运行…

【AI预测】5月30日尼克斯大战前瞻:东部黑马能否再下一城?

&#x1f3c0; 随着赛季进入白热化阶段&#xff0c;5月30日尼克斯的这场比赛注定焦点十足。作为东部近年来少有的“黑马型”球队&#xff0c;尼克斯用硬朗的防守和团队配合让人重新认识了这支老牌劲旅。 这篇文章&#xff0c;我们将从数据模型球员表现战术执行力三个维度&…

人工智能赋能基础教育个性化学习的理论建构与实践探索

一、引言 1.1 研究背景与意义 随着科技的飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;已逐渐成为推动社会进步的重要力量。在教育领域&#xff0c;人工智能的应用正逐步改变传统的教学模式&#xff0c;为个性化学习提供了新…

历年四川大学计算机保研上机真题

2025四川大学计算机保研上机真题 2024四川大学计算机保研上机真题 2023四川大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 分数求和 题目描述 有一分数序列&#xff1a; 2 / 1 2/1 2/1, 3 / 2 3/2 3/2, 5 / 3 5/3 5/3, 8 / 5 8/5 8/5, 13 /…

正点原子Z15I ZYNQ 开发板发布!板载PCIe2.0、SPFx2、MIPI CSI等接口,资料丰富!

正点原子Z15I ZYNQ 开发板发布&#xff01;板载PCIe2.0、SPFx2、MIPI CSI等接口&#xff0c;资料丰富&#xff01; 正点原子Z15I ZYNQ开发板&#xff0c;核心板全工业级设计&#xff0c;主控芯片的型号是XC7Z015CLG485-2I。开发板由核心板&#xff0b;底板组成&#xff0c;外设…

Ubuntu 22.04 上使用 Docker 安装 RagFlow

GitHub地址:添加链接描述 RAGFlow 是一款开源的检索增强生成(Retrieval-Augmented Generation,简称 RAG)引擎,旨在通过深度文档理解技术,结合大语言模型(LLM),为用户提供高质量、可溯源的问答服务。 🚀 快速入门 RAGFlow 提供了便捷的部署方式,支持 Docker 环境。…

【论文阅读】DanceGRPO: Unleashing GRPO on Visual Generation

DanceGRPO: Unleashing GRPO on Visual Generation 原文摘要 研究背景与问题 生成模型的突破&#xff1a;扩散模型和整流流等生成模型在视觉内容生成领域取得了显著进展。核心挑战&#xff1a;如何让模型的输出更好地符合人类偏好仍是一个关键问题。现有方法的局限性&#xff1…

Milvus可视化客户端Attu安装与使用指南

导读&#xff1a;在向量数据库运维管理中&#xff0c;开发者往往面临着复杂的命令行操作和繁琐的API调用挑战。作为Milvus向量数据库的官方图形化管理工具&#xff0c;Attu为这一痛点提供了优雅的解决方案。 本文深入解析Attu的核心架构和实用功能&#xff0c;重点介绍其在数据…

C# 结合PaddleOCRSharp搭建Http网络服务

Windows打开端口&#xff1a; 控制面板 > 系统和安全 > 防火墙> 高级设置 → 入站规则 → 右侧选择 → 新建规则 → 端口 → 协议类型 TCP→ 端口 using System; using System.Drawing; using System.IO; using System.Net; using System.Text; using System.Threadi…

【论文精读】2024 ECCV--MGLD-VSR现实世界视频超分辨率(RealWorld VSR)

文章目录 一、摘要二、问题三、Method3.1 Latent Diffusion Model3.2 Motion-guided Diffusion Sampling3.3 Temporal-aware Decoder Fine-tuning 四、实验设置4.1 训练阶段4.2 训练数据 贡献总结 论文全称&#xff1a; Motion-Guided Latent Diffusion for Temporally Consis…

初学c语言21(文件操作)

一.为什么使用文件 之前我们写的程序的数据都是存储到内存里面的&#xff0c;当程序结束时&#xff0c;内存回收&#xff0c;数据丢失&#xff0c; 再次运行程序时&#xff0c;就看不到上次程序的数据&#xff0c;如果要程序的数据一直保存得使用文件 二.文件 文件一般可以…

历年厦门大学计算机保研上机真题

2025厦门大学计算机保研上机真题 2024厦门大学计算机保研上机真题 2023厦门大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 数字变换过程的最大值与步数 题目描述 输入一个数字 n n n&#xff0c;如果 n n n 是偶数就将该偶数除以 2 2 2&…

MySql--定义表存储引擎、字符集和排序规则

示例&#xff1a; CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,email VARCHAR(100) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;注意事项&#xff1a; 字符集和排序规则可以按列覆盖表…

深耕数字化赛道,联众优车以创新风控体系构筑汽车金融护城河

近年来&#xff0c;在汽车金融市场规模持续扩大的行业背景下&#xff0c;企业风险管理能力已成为决定市场竞争格局的关键要素。面对快速扩张的市场需求&#xff0c;银保监会2024年发布的《汽车金融公司监管评级办法》明确要求行业强化风控能力建设&#xff0c;央行《金融科技发…

第十九章 正则表达式

第十九章 正则表达式 文本型数据在所有的类UNIX系统(如 Linux)中会扮演着重要角色&#xff0c;在完全领会这些工具的全部特征之前&#xff0c;要先了解一下工具最为复杂的用法和相关技术&#xff1a;正则表达式。 什么是正则表达式 简单地说&#xff0c;正则表达式是一种用于…

内存监控方法与要点详解

引言 在软件性能测试领域&#xff0c;内存管理是评估系统稳定性和性能的关键指标之一。作为软件测试工程师&#xff0c;我们经常遇到因内存泄漏、内存溢出等问题导致的系统崩溃或性能下降。本文将深入探讨性能测试中内存监控的方法和要点&#xff0c;帮助测试团队更有效地识别…