mikehenrty / thin-pdo-wrapper
一个简单的数据库抽象层,用于使用PDO连接MySQL、Postgres和SQLite。
1.0.1
2016-08-03 21:47 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-25 12:00:35 UTC
README
一个利用PHP PDO的简单数据库客户端。
优点
- 每个请求最多维护一个从数据库连接和一个主数据库连接。
- 自动使用从连接进行数据检索,主连接进行写入。
- 随机选择从连接,如果不存在从连接则自动回退到主连接。
- 强制数据净化(使用PDO预处理语句和绑定参数)。
- 捕获所有错误,并在配置的情况下将它们写入错误日志。
- 自动为创建和更新操作添加时间戳
- 使用单个查询处理多个插入操作。
- 如果需要执行连接或二级查询,则回退到自定义查询。
- 仅使用关联数组进行输入/输出处理
配置
主数据库
$pdo->configMaster(
'myhostname.example',
'my_database_name',
'my_database_user',
'my_database_password',
'my_database_port' // optional
);
从数据库(可选)
$pdo->configSlave(
'myhostname1.example',
'my_database_name',
'my_database_user',
'my_database_password',
'my_database_port' // optional
);
$pdo->configSlave(
'myhostname2.example',
'my_database_name',
'my_database_user',
'my_database_password',
'my_database_port' // optional
);
// etc
示例
选择
$results = PDOWrapper::instance()->select('post', array('thread_id'=>$thread_id));
$results = PDOWrapper::instance()->select('thread', array('open'=>0), $limit+1, $start, array('favs'=>'DESC'));
插入
$invite_id = PDOWrapper::instance()->insert('invite', array(
'user_id' => $user_id,
'text' => $text,
'invite_key' => $invite_key
));
带有绑定参数的复杂查询
$post = PDOWrapper::instance()->queryFirst('
SELECT invite.*, user.name FROM invite
LEFT JOIN user ON user.id=invite.user_id
WHERE invite_key=:invite_key
', array(':invite_key'=>$invite_key));