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'
]
]);