Skip to content
本页内容

Medoo 是一个轻量级的 PHP 数据库框架,专注于简单易用,同时提供强大的功能。它支持多种数据库(如 MySQL、PostgreSQL、SQLite 等),非常适合小型项目或需要简单数据库操作的情况。以下是 Medoo 的详细使用介绍:

安装

使用 Composer 安装 Medoo:

sh
composer require catfan/medoo

基本配置

配置 Medoo 并创建一个数据库实例:

php
require 'vendor/autoload.php';

use Medoo\Medoo;

$database = new Medoo([
    'type' => 'mysql',
    'host' => '127.0.0.1',
    'database' => 'database_name',
    'username' => 'root',
    'password' => 'password'
]);

注意:1.7版本的Medoo连接数据库的配置有所区别

php
$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'name',
    'server' => 'localhost',
    'username' => 'your_username',
    'password' => 'your_password',
    'charset' => 'utf8'
]);

基本操作

插入数据

php
$database->insert('table_name', [
    'column1' => 'value1',
    'column2' => 'value2'
]);

查询数据

php
$data = $database->select('table_name', [
    'column1',
    'column2'
], [
    'column3' => 'condition_value'
]);

print_r($data);

更新数据

php
$database->update('table_name', [
    'column1' => 'new_value'
], [
    'column2' => 'condition_value'
]);

删除数据

php
$database->delete('table_name', [
    'column1' => 'condition_value'
]);

复杂查询

多条件查询

php
$data = $database->select('table_name', [
    'column1',
    'column2'
], [
    'AND' => [
        'column3' => 'value3',
        'column4[>]' => 'value4'
    ]
]);

print_r($data);

排序和限制

php
$data = $database->select('table_name', [
    'column1',
    'column2'
], [
    'ORDER' => ['column1' => 'DESC'],
    'LIMIT' => 10
]);

print_r($data);

使用聚合函数

php
$count = $database->count('table_name', [
    'column1' => 'condition_value'
]);

echo $count;

原生查询

Medoo 也允许执行原生 SQL 查询:

php
$database->query("SELECT * FROM table_name WHERE column1 = 'value1'")->fetchAll();

错误处理

捕获和处理数据库操作中的错误:

php
try {
    $database->insert('table_name', [
        'column1' => 'value1',
        'column2' => 'value2'
    ]);
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

结合 Slim 框架

将 Medoo 与 Slim 框架结合使用:

php
require 'vendor/autoload.php';

use Medoo\Medoo;
use Slim\Factory\AppFactory;

// 创建 Slim 应用
$app = AppFactory::create();

// 配置 Medoo
$database = new Medoo([
    'type' => 'mysql',
    'host' => '127.0.0.1',
    'database' => 'database_name',
    'username' => 'root',
    'password' => 'password'
]);

// 定义路由
$app->get('/users', function ($request, $response, $args) use ($database) {
    $users = $database->select('users', ['id', 'name', 'email']);
    $response->getBody()->write(json_encode($users));
    return $response->withHeader('Content-Type', 'application/json');
});

// 运行应用
$app->run();

通过这些步骤,你可以轻松地在 Slim 框架中集成和使用 Medoo 来进行数据库操作。 Medoo 提供了简单且直观的接口,可以快速上手并完成各种常见的数据库操作。