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

article/2025/8/18 15:45:56

学习路之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.hkcw.cn/article/gSDrvunQDg.shtml

相关文章

LangChain快速筑基(带代码)P1-输入控制与输出解析

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录 引言基础代码LangChain python官方文档 输出可控…

在哈佛毕业礼上演讲的中国女孩是谁?江玉蓉来自中国青岛

在哈佛毕业礼上演讲的中国女孩是谁?5月29日,在哈佛大学毕业典礼上,三名毕业生代表在演讲时强调,要保持学生群体的多元化和国际化,并在特朗普政府的攻击面前坚持真理。其中一位演讲者是来自中国的江玉蓉(音译)。她说,自己从小就相信世界正在变成一个小村庄,并在哈佛找到…

日本北海道东部近海发生5.4级地震

日本北海道东部近海发生地震。5月30日电,据日本气象厅消息,当地时间5月30日7时23分左右,日本北海道东部近海地区发生5.4级地震,最大震感为震度3,震源深度50公里。责任编辑:0882

ubuntu24.04启用fcitx 5

在ubuntu24.04中启用fcitx 5 ubuntu24.04系统自带三种键盘输入法系统&#xff1a; IBusFcitx 5XIM 系统默认使用的是IBus,这个拼音输入少了一些智能的味道&#xff0c;比较影响输入体验。换用Fcitx 5后&#xff0c;加上搜狗细胞词库&#xff0c;感觉很丝滑&#xff0c;特记录…

C++多态的详细讲解

【本节目标】 1. 多态的概念 2. 多态的定义及实现 3. 抽象类 4. 多态的原理 5. 单继承和多继承关系中的虚函数表 前言 需要声明的&#xff0c;本博客中的代码及解释都是在 vs2013 下的 x86 程序中&#xff0c;涉及的指针都是 4bytes 。 如果要其他平台下&#xff0c;部…

上海女子新装修房子被人拆光 乌龙事件背后的真相

最近,家住浦东新区“芳草苑”小区的张女士向《新闻坊》同心服务平台反映,她家刚刚完成了老房新装,原本计划第二天从出租屋搬回去。但当她回家查看收尾进度时,发现厨房和卫生间里的设施设备被三个陌生人拆了。这些设施和装修材料都是全新的、一线品牌的定制款,这让张女士非…

范丞丞广电培训手写笔记曝光 青年演员心得分享

5月30日,“陈都灵杨超越范丞丞广电培训笔记”的词条冲上热搜。此前,5月18日至21日,2025年青年演员和经纪人培训班(第二期)在广电总局研修学院顺义校区举办。这是广电总局组织的总第6期青年演员和经纪人培训班,共有34名青年演员和23名经纪人参加了为期四天的封闭学习。参加…

万达已出售近五分之一的万达广场!

万达已出售近五分之一的万达广场。距离卖掉万达集团北京总部还不到半年时间,王健林再次出售手中资产。2025年5月20日,根据国家市场监督管理总局官网信息:太盟(珠海)管理咨询合伙企业(有限合伙)、高和丰德(北京)企业管理服务有限公司、腾讯控股有限公司、北京市潘达商业…

YOLO12改进-模块-引入AFE模块 增强模型对复杂场景(如杂乱背景、小目标、半透明物体)的特征提取能力

在语义分割任务中&#xff0c;复杂场景&#xff08;如杂乱背景、半透明物体&#xff09;下的语义线索捕捉是难点。现有方法&#xff08;如基于 CNN 和 Transformer 的模型&#xff09;存在以下局限&#xff1a; CNN&#xff1a;受限于局部感受野&#xff0c;难以建模长…

华为OD机试真题——字母组合过滤组合字符串(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

男子深夜爬泰山崩溃痛哭:大喊要回家找媳妇

男子深夜爬泰山崩溃痛哭。全网疯传!夜爬泰山避坑指南:为何有人登顶后痛哭?这些细节能救命!泰山景区数据显示,夜爬游客受伤率同比激增,其中78%因未携带照明设备跌落台阶。最近曝光的"大学生夜爬冻伤事件",正是轻视了泰山顶与山脚高达15℃的温差。正值暑期夜爬高…

网友在摩洛哥偶遇成都“洋中医”狂飙四川话

网友在摩洛哥偶遇成都“洋中医”。首位外籍中医博士迪亚拉在摩洛哥被偶遇与成都“老乡”狂飙四川话5月26日,有网友发布视频称在摩洛哥偶遇首位外籍中医博士迪亚拉,两人狂飙四川话,还约在成都吃火锅。迪亚拉,1984年获奖学金到中国学习,于1997年获得成都中医药大学博士学位,…

端午假期首都博物馆延长开放时间 六月活动精彩纷呈

端午假期首都博物馆延长开放时间!为了满足广大观众的参观需求,首都博物馆2025年6月将进行部分场次的延时开放活动。端午假期及6月份延时开放相关事宜如下:2025年5月31日(端午节、周六)至6月2日(周一)正常开放。延时开放场次为5月31日(端午节、周六)、6月7日(周六)、…

老人骑电动车捎人遇车祸后被判赔14万 好心搭载惹争议

老人骑电动车捎人遇车祸后被判赔14万 好心搭载惹争议!2023年8月15日清晨,浙江省东阳市六石街道徐庄村的卢某芳老人骑电动车前往镇上参加领鸡蛋的促销活动。在现场,她遇到了隔壁村的老友吕某,在返程时捎带吕某一同回家,尽管这需要绕路。不幸的是,在返程途中,电动车与一辆…

辣目洋子回母校重大讲座分享 勇敢追梦不惧质疑

5月29日,李嘉琦回到母校重庆大学,参加新闻学院“优秀校友回母校”系列讲座。她以“梦想?梦幻?人生也是一部电视剧”为主题,与学弟学妹们分享了自己在母校时的学习生活和进入娱乐圈的经历。李嘉琦从小有一个当演员的梦想,但不知道如何实现。高考时,她从内蒙古考入重庆大学…

济南5元快餐店老板回应是否亏钱 意外走红后生意更旺

山东济南市天桥区一家名为“小孟5元自助快餐”的小店,因一条关于“菜量少并且贵”的差评意外走红网络。许多网友在该店外卖及美食点评平台的评论区跟帖“玩梗”,晒出波龙、帝王蟹等海鲜美食图片,替店老板发声鸣不平。这家备受热捧的小店位于巷子里,面积约10平方米。厨房和打…

数据库 | timescaledb性能初步测试

数据库docker限制资源&#xff1a;CPU 4核&#xff0c;内存 8G。数据库版本&#xff1a;2.15.1-pg16 表结构和索引如下&#xff1a; CREATE TABLE dm_tag_value (id BIGINT NOT NULL DEFAULT 0,ds_id BIGINT DEFAULT NULL,tag_name VARCHAR(200) DEFAULT NULL,tag_value VARCH…

CVE-2019-0193源码分析与漏洞复现

漏洞概述 漏洞名称&#xff1a;Apache Solr DataImportHandler 远程代码执行漏洞 漏洞编号&#xff1a;CVE-2019-0193 CVSS 评分&#xff1a;9.8 影响版本&#xff1a;Apache Solr 1.3 - 8.2.0 修复版本&#xff1a;Apache Solr ≥ 8.2.0 漏洞类型&#xff1a;输入验证缺陷导致…

圣杯布局和双飞翼布局的实现方法

目录 一、圣杯布局 1.传统布局floatmargin 2.使用flex布局 3.使用grid网格布局 二、双飞翼布局 一、圣杯布局 1.传统布局floatmargin 使用传统的float浮动和相对定位来实现 <div class"main-container"><div class"main"></div><div …

第4讲、Odoo 18 模块系统源码全解与架构深度剖析【modules】

引言 Odoo 是一款强大的开源企业资源规划&#xff08;ERP&#xff09;与客户关系管理&#xff08;CRM&#xff09;系统&#xff0c;其核心竞争力之一在于高度模块化的架构设计。模块系统不仅是 Odoo 框架的基石&#xff0c;更是实现功能灵活扩展与定制的关键。本文将结合 Odoo…