Merge branch 'master' into noglob
This commit is contained in:
commit
7d35a8f3f0
27 changed files with 430 additions and 288 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue