jelix / database
轻量级PHP抽象层,用于访问和查询SQL数据库,并提供了检查和修改数据库模式的API。
v1.3.2
2024-03-10 12:25 UTC
Requires
- php: >=7.2
- psr/log: ^1.1.2
Requires (Dev)
- phpunit/phpunit: 8.5.*
README
轻量级PHP抽象层,用于访问和查询SQL数据库。
它使用针对每个支持的数据库类型定制的PHP API,而不是PDO。连接器和结果集的API几乎与PDO相同。还有一个用于操作模式的API。
它支持Mysql 5.6+、Postgresql 9.6+、Sqlite 3。它部分支持(模式API未完全实现)SQLServer 2012+和OCI。有一个使用PDO的连接器,因此您可以使用其他数据库(除模式API外)。
此库是从Jelix框架1.7中提取出来的,并且已经进行了现代化改造。
安装
您可以使用Composer安装它。在您的项目中
composer require "jelix/database"
使用方法
快速开始
use \Jelix\Database\AccessParameters; use \Jelix\Database\Connection; // parameters to access to a database. they can come from a configuration file or else.. $parameters = array( 'driver'=>'sqlite3', "database"=>"/app/tests/units/tests.sqlite3", ); // verify content of parameters and prepare them for the Connection object. $accessParameters = new AccessParameters($parameters, array('charset'=>'UTF-8')); // then you can retrieve a connector $db = Connection::create($accessParameters); // let's insert some values $insertSql = "INSERT INTO ".$db->encloseName('myValues')." ( ".$db->encloseName('id'). ", ".$db->encloseName('value')." ) VALUES "; $value = 'foo'; // insert one value with a classical query $db->exec($insertSql." (1, ".$db->quote($value).")"); // insert one value with a prepared query $stmt = $db->prepare($insertSql."(:id, :val)"); $stmt->bindValue('id', 2, \PDO::PARAM_INT); $myVar = 'bar'; $stmt->bindParam('value', $myVar, \PDO::PARAM_STR); $stmt->execute(); // retrieve all records $resultSet = $db->query("SELECT id, value FROM myValues"); // records are always objects foreach ($resultSet as $record) { echo "id=".$record->id."\n"; echo "value=".$record->value."\n"; }
完整文档:请参阅文档目录。