tueena-lib / sql
一个围绕 PDO 的(非常受限的)包装器,用于使数据库访问在单元测试中可模拟。
v0.3.0
2017-03-14 21:03 UTC
Requires
- php: >=7.0.0
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-28 19:47:34 UTC
README
一个围绕 PDO 的(非常受限的)包装器,用于使数据库访问在单元测试中可模拟。
功能
- 用于
SELECT
、INSERT
、UPDATE
和DELETE
查询的方法。 - 预处理语句,事务。
- 允许以关联数组的形式传递参数。
- 目前仅支持 MySQL。
使用方法
<?php namespace tueenaLib\sql; // Initialisation $driver = new MySqlDriver('localhost', 'root', 'myPasswd', 'myDatabase', 3306); $sql = new Sql($driver); // Usage // INSERT with prepared statement (works also with UPDATEs, SELECTs and DELETEs). $preparedStatement = new PreparedStatement('INSERT into testtable (foo, bar) VALUES (:foo, :bar)'); $sql->insertWithPreparedStatement($preparedStatement, ['foo' => 'value1', 'bar' => 'value2']); $result = $sql->insertWithPreparedStatement($preparedStatement, ['foo' => 'value2', 'bar' => 'value3']); $affectedRows = $result->getNumAffectedRows(); $lastInsertId = $result->getLastInsertId(); // Works only for INSERT queries, of course. // Transactions $transaction = $sql->beginTransaction(); // UPDATE without prepared statement (like SELECTs, INSERTs and DELETEs) $sql->update( 'UPDATE testtable SET foo = :foo WHERE id = :id', [ 'foo' => 'value4', 'id' => 1 ], $transaction // pass in the transaction object. ); $sql->rollBack($transaction); // or use Sql::commit($transaction) $result = $sql->select('SELECT * FROM testtable'); $numRows = $result->getNumRows(); $row1 = $result->fetchAssoc(); // associative array $row2 = $result->fetchNumeric(); // numeric array $row3 = $result->fetchNumeric(); // returns null if there is no more row.
许可证
MIT
要求
- php >= 7.0.0
- pdo
安装
如果你使用 Composer
composer require tueena-lib/sql
否则只需下载文件并使用。
联系
Bastian Fenske bastian.fenske@tueena.org