學習路之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
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83100.shtml
英文地址,請注明出處:http://en.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;幫助測試團隊更有效地識別…