Medoo 是一个轻量级的 PHP 数据库框架,它提供了一个简单易用的查询构建器,允许开发者以一种优雅的方式与数据库进行交互。Medoo 使用 PDO 扩展来提供数据库抽象层,支持多种数据库系统,如:MySQL、PostgreSQL、SQLite 等。
composer require catfan/medoo
<?php
/**
* @desc medoo.php 描述信息
* @author Tinywan(ShaoBo Wan)
* @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":"Tinywan","mobile":"1366936666"}]
安装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