jelix/database

轻量级PHP抽象层,用于访问和查询SQL数据库,并提供了检查和修改数据库模式的API。

v1.3.2 2024-03-10 12:25 UTC

This package is auto-updated.

Last update: 2024-09-21 16:01:42 UTC


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";
}

完整文档:请参阅文档目录。