PHP code example of fastd / medoodb

1. Go to this page and download the library: Download fastd/medoodb library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

fastd / medoodb example snippets




use FastD\MedooDB\Database;

// 创建数据库连接
$database = new Database([
    'type' => 'mysql',
    'host' => 'localhost',
    'database' => 'test',
    'username' => 'root',
    'password' => 'password',
    'charset' => 'utf8mb4',
    'port' => 3306,
    'prefix' => '',
]);

// 查询数据
$users = $database->select('users', '*');

// 条件查询
$users = $database->select('users', '*', [
    'status' => 1,
    'ORDER' => 'created_at DESC',
    'LIMIT' => 10
]);

// 插入数据
$database->insert('users', [
    'name' => 'John Doe',
    'email' => '[email protected]'
]);

// 更新数据
$database->update('users', [
    'status' => 1
], [
    'id' => 1
]);

// 删除数据
$database->delete('users', [
    'status' => 0
]);



use FastD\MedooDB\Database;

// 使用 SQLite 内存数据库
$database = new Database([
    'type' => 'sqlite',
    'database' => ':memory:',
    'charset' => 'utf8',
]);

// 创建表
$database->query("CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL
)");

// 插入数据
$database->insert('users', [
    'name' => 'Test User',
    'email' => '[email protected]'
]);

// 查询
$users = $database->select('users', '*');
print_r($users);



use FastD\MedooDB\DatabasePool;

// 配置多个数据库连接
$config = [
    'local' => [
        'type' => 'mysql',
        'host' => 'localhost',
        'database' => 'app_db',
        'username' => 'root',
        'password' => 'password',
        'charset' => 'utf8mb4',
    ],
    'analytics' => [
        'type' => 'mysql',
        'host' => 'analytics.example.com',
        'database' => 'analytics_db',
        'username' => 'reader',
        'password' => 'reader_password',
        'charset' => 'utf8mb4',
    ],
    'cache' => [
        'type' => 'sqlite',
        'database' => '/path/to/cache.db',
    ],
];

// 创建连接池
$pool = new DatabasePool($config);

// 获取数据库连接
$localDb = $pool->getDatabase('local');
$users = $localDb->select('users', '*');

// 获取分析数据库连接
$analyticsDb = $pool->getDatabase('analytics');
$stats = $analyticsDb->select('stats', '*');

// 重新连接
$localDb = $pool->getDatabase('local', true);

// 初始化所有连接
$pool->initConnections();



use FastD\Container\Container;
use FastD\MedooDB\ServiceProvider\DatabaseServiceProvider;

// 创建容器
$container = new Container();

// 配置数据库
$container->add('config', [
    'database' => [
        'local' => [
            'type' => 'mysql',
            'host' => 'localhost',
            'database' => 'app_db',
            'username' => 'root',
            'password' => 'password',
        ],
    ],
]);

// 注册服务提供者
$serviceProvider = new DatabaseServiceProvider();
$serviceProvider->register($container);

// 使用数据库
$dbPool = $container->get('medoodb');
$database = $dbPool->getDatabase('local');

$users = $database->select('users', '*');



use FastD\MedooDB\Database;

$database = new Database([
    'type' => 'mysql',
    'host' => 'localhost',
    'database' => 'test',
    'username' => 'root',
    'password' => 'password',
]);

// WHERE 条件
$users = $database->select('users', '*', [
    'AND' => [
        'status' => 1,
        'OR' => [
            'role' => 'admin',
            'role' => 'moderator'
        ]
    ]
]);

// JOIN 查询
$posts = $database->select('posts', [
    '[>]users' => ['user_id' => 'id']
], [
    'posts.id',
    'posts.title',
    'users.name',
    'users.email'
]);

// 聚合查询
$count = $database->count('users', '*', [
    'status' => 1
]);

$sum = $database->sum('orders', 'amount', [
    'status' => 'completed'
]);

// 原生 SQL
$result = $database->query("SELECT * FROM users WHERE status = :status", [
    ':status' => 1
]);

// 事务处理
$database->action(function($database) {
    $database->insert('users', [
        'name' => 'John Doe',
        'email' => '[email protected]'
    ]);
    
    $userId = $database->id();
    
    $database->insert('profiles', [
        'user_id' => $userId,
        'bio' => 'Hello World'
    ]);
});



use FastD\MedooDB\Database;
use PDO;

$database = new Database([
    'type' => 'mysql',
    'host' => 'localhost',
    'database' => 'test',
    'username' => 'root',
    'password' => 'password',
    'charset' => 'utf8mb4',
    'port' => 3306,
    'prefix' => 'app_',
    'option' => [
        PDO::ATTR_CASE => PDO::CASE_NATURAL,
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
        PDO::ATTR_STRINGIFY_FETCHES => false,
        PDO::ATTR_EMULATE_PREPARES => false,
    ],
    'command' => [
        'SET SQL_MODE=ANSI_QUOTES'
    ]
]);