Merge branch 'master' into noglob

This commit is contained in:
origami11@yandex.ru 2022-11-18 16:07:32 +03:00
commit 7d35a8f3f0
27 changed files with 430 additions and 288 deletions

View file

@ -18,7 +18,7 @@ use PDO,
/**
* Класс оболочка для PDO для замены Creole
*/
class Database extends PDO
class Database/*<Database_PDOStatement>*/ extends PDO
{
public $dsn;
@ -26,8 +26,14 @@ class Database extends PDO
{
parent::__construct($dsn, $username, $password);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('ctiso\\Database\\PDOStatement', array()));
}
function prepare($sql, $args = []) {
$result/*: PDOStatement*/ = parent::prepare($sql, $args);
return $result;
}
public function getDSN()
{
@ -48,6 +54,10 @@ class Database extends PDO
if ($dsn['phptype'] == 'pgsql') {
$connection->query('SET client_encoding="UTF-8"');
}
if (isset($dsn['schema'])) {
$connection->query('SET search_path TO ' . $dsn['schema']);
}
}
if ($dsn['phptype'] == 'sqlite') {
$connection/*: Database*/ = new static("{$dsn['phptype']}:{$dsn['database']}");
@ -133,7 +143,6 @@ class Database extends PDO
$sql = "INSERT INTO $table (" . implode(",", array_keys($values))
. ") VALUES (" . implode(",", array_keys($prep)). ")";
if ($return_id) {
if ($this->isPostgres()){
$sql = $sql." RETURNING $index";
@ -181,11 +190,6 @@ class Database extends PDO
return $result['nextval'];
}
function prepare($query, $options = NULL) {
$result/*: PDOStatement*/ = parent::prepare($query);
return $result;
}
function close() {
return null;
}