概述
Medoo 是一個輕量級的 PHP 資料庫架構,它提供了一個簡單易用的查詢建構器,允許開發者以一種優雅的方式與資料庫進行互動。Medoo 使用 PDO 擴充來提供資料庫抽象層,支援多種資料庫系統,如:MySQL、PostgreSQL、SQLite 等。
特點
- 簡潔的文法:Medoo 提供了簡潔的查詢建構文法,使得編寫 SQL 查詢變得直覺和容易。
- 鍊式操作:支援鍊式調用,使得代碼更加簡潔和易于閱讀。
- 類型安全:通過 PDO 的參數綁定,Medoo 提供了良好的類型安全。
- 跨資料庫支援:支援多種資料庫類型,讓開發者可以輕松切換資料庫系統。
- 易于擴充:Medoo 的架構設計允許開發者根據需要進行擴充和自定義
基本使用
安裝
composer require catfan/medoo
使用
<?php
/**
* @desc medoo.php 描述資訊
* @date 2024/6/29 17:42
*/
declare(strict_types=1);
require_once __DIR__ . '/../vendor/autoload.php';
use Medoo\Medoo;
$database = new Medoo([
'type' => 'mysql',
'host' => 'dnmp-mysql',
'database' => 'demo',
'username' => 'root',
'password' => '123456'
]);
$database->insert('demo_user', [
'username' => 'Tinywan',
'mobile' => 1366936666
]);
$data = $database->select('demo_user', [
'username',
'mobile'
], [
'id' => 72
]);
echo json_encode($data);
列印輸出
[{"username":"layne","mobile":"xxxxxxxxxxx"}]
webman使用
安裝
安裝medoo插件包
composer require webman/medoo
配置
配置檔案位置在config/plugin/webman/medoo/database.php
使用
<?php
namespace app\controller;
use support\Request;
use Webman\Medoo\Medoo;
class Index
{
public function index(Request $request)
{
$user = Medoo::get('user', '*', ['uid' => 1]);
return json($user);
}
}
多資料庫配置
config/plugin/webman/medoo/database.php裡新增一個配置,key任意,這裡使用的是resty。
<?php
return [
'default' => [
'type' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
'prefix' => '',
'logging' => false,
'error' => PDO::ERRMODE_EXCEPTION,
'option' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL
],
'command' => [
'SET SQL_MODE=ANSI_QUOTES'
]
],
// 這裡新增了一個resty的配置
'resty' => [
'type' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
'prefix' => '',
'logging' => false,
'error' => PDO::ERRMODE_EXCEPTION,
'option' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL
],
'command' => [
'SET SQL_MODE=ANSI_QUOTES'
]
],
];
使用
$user = Medoo::instance('resty')->get('user', '*', ['uid' => 1]);
小結
Medoo 适合于需要快速開發和簡單資料庫操作的項目。如果你正在尋找一個輕量級且功能強大的 PHP 資料庫架構,Medoo 可能是一個不錯的選擇。
Medoo官方文檔:https://medoo.in/api/select