Last active
February 9, 2017 03:22
-
-
Save dekassegui/6e9439d79400a21f9a6828e8e58afd10 to your computer and use it in GitHub Desktop.
Extensão da classe PDO provendo workaround para bug no método de criação de funções quando db é SQLite.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Extensão da classe PDO para SQLite, provendo "workaround" para | |
* bug no método de criação de funções em algumas versões de PHP | |
* e métodos de conveniência da extinta classe SQLite3. | |
* Exemplo de uso: | |
* try { | |
* $pdo = new SQLitePDO(); | |
* $pdo.connect("path_to/db.sqlite"); | |
* } catch(PDOException $e) { | |
* die($e->getMessage()); | |
* } | |
*/ | |
class SQLitePDO extends PDO | |
{ | |
public function __construct() {} | |
/** | |
* Instancia objeto e agrega funções nativas para uso nas requisições. | |
* | |
* @param $dsn String container do "data source name". | |
*/ | |
public function connect($dsn) | |
{ | |
parent::__construct('sqlite:'.$dsn); | |
$this->sqliteCreateFunction('regex', 'preg_match', 2); | |
} | |
/** | |
* Executa requisição de resultado único com tipo primitivo. | |
* | |
* Nota: Não substitui completamente o método de mesmo nome no SQlite3. | |
* | |
* @param $sql String container do sql a executar. | |
* @return O valor único requisitado na expressão. | |
*/ | |
public function querySingle($sql) | |
{ | |
$result = $this->query($sql); | |
return $result->fetchColumn(); | |
} | |
/** | |
* @return Retorna texto descrevendo a falha na requisição mais recente. | |
*/ | |
public function lastErrorMsg() | |
{ | |
return $this->errorInfo()[2]; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment