/** * {@inheritdoc} */ public function connect(array $params, $username = null, $password = null, array $driverOptions = array()) { try { $pdo = new PDOConnection($this->_constructPdoDsn($params), $username, $password, $driverOptions); if (PHP_VERSION_ID >= 50600 && (!isset($driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES]) || true === $driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES])) { $pdo->setAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES, true); } return $pdo; } catch (PDOException $e) { throw DBALException::driverException($this, $e); } }
/** * {@inheritdoc} */ public function connect(array $params, $username = null, $password = null, array $driverOptions = array()) { if (isset($driverOptions['userDefinedFunctions'])) { $this->_userDefinedFunctions = array_merge($this->_userDefinedFunctions, $driverOptions['userDefinedFunctions']); unset($driverOptions['userDefinedFunctions']); } try { $pdo = new PDOConnection($this->_constructPdoDsn($params), $username, $password, $driverOptions); } catch (PDOException $ex) { throw DBALException::driverException($this, $ex); } foreach ($this->_userDefinedFunctions as $fn => $data) { $pdo->sqliteCreateFunction($fn, $data['callback'], $data['numArgs']); } return $pdo; }
/** * {@inheritdoc}non-PHPdoc) */ public function query() { $args = func_get_args(); $sql = $this->removeTableAlias($args[0]); $sql = $this->normalizeCount($sql); return parent::query($sql); }
/** * @override */ public function quote($value, $type = \PDO::PARAM_STR) { $val = parent::quote($value, $type); // Fix for a driver version terminating all values with null byte if (strpos($val, "") !== false) { $val = substr($val, 0, -1); } return $val; }
public function checkCity($city) { $backendOptions = $this->configurationManager->getConfiguration('Settings', 'TYPO3.Flow.persistence.backendOptions'); $config = new \Doctrine\DBAL\Configuration(); $this->connection = \Doctrine\DBAL\DriverManager::getConnection($backendOptions, $config); $statement = "SELECT count(*) as number FROM `city` " . "WHERE `city`.`name` like '" . $city . "'"; $result = $this->connection->query($statement)->fetchAll(); return $result[0]; }
/** * {@inheritdoc} */ public function connect(array $params, $username = null, $password = null, array $driverOptions = array()) { try { $pdo = new PDOConnection($this->_constructPdoDsn($params), $username, $password, $driverOptions); if (defined('PDO::PGSQL_ATTR_DISABLE_PREPARES') && (!isset($driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES]) || true === $driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES])) { $pdo->setAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES, true); } /* defining client_encoding via SET NAMES to avoid inconsistent DSN support * - the 'client_encoding' connection param only works with postgres >= 9.1 * - passing client_encoding via the 'options' param breaks pgbouncer support */ if (isset($params['charset'])) { $pdo->query('SET NAMES \'' . $params['charset'] . '\''); } return $pdo; } catch (PDOException $e) { throw DBALException::driverException($this, $e); } }
/** * {@inheritdoc} */ public function quote($value, $type = \PDO::PARAM_STR) { if (\PDO::PARAM_BOOL === $type) { if ($value) { return 'true'; } else { return 'false'; } } return parent::quote($value, $type); }
/** * Get latest categories * * @param string $folderId The folder id * @return array The query result */ public function getCategoriesByFolder($folderId) { // Connect to DB $backendOptions = $this->configurationManager->getConfiguration('Settings', 'TYPO3.Flow.persistence.backendOptions'); $config = new \Doctrine\DBAL\Configuration(); $this->connection = \Doctrine\DBAL\DriverManager::getConnection($backendOptions, $config); // Run query to get categories $statement = "SELECT a.`persistence_object_identifier`, a.`title`,( " . "SELECT group_concat(concat(`persistence_object_identifier`,',',`title`) separator ';') " . "FROM `lelesys_plugin_news_domain_model_category` WHERE `parentcategory` = a.persistence_object_identifier) as value " . "FROM `lelesys_plugin_news_domain_model_category` as a where a.`parentcategory`is null AND `folder` ='" . $folderId . "' group by `persistence_object_identifier`"; $result = $this->connection->query($statement)->fetchAll(); return $result; }
/** * Rollback transaction */ public function rollbackTransaction() { if ($this->pdoConnection) { $this->pdoConnection->rollBack(); } }
public function importarscriptAction() { function getconfig() { // fixme: do it the synfony way $yfile = "../app/config/parameters.yml"; $parameters = file_get_contents($yfile); $linhas = explode("\n", $parameters); foreach ($linhas as $linha) { $dado = explode(": ", $linha); $config[] = $dado[1]; } return $config; } // Conexão com o banco $config = @getconfig(); $server = $config[2]; $port = $config[3]; $db = $config[4]; $user = $config[5]; $pass = $config[6]; error_log("11111111111111111111111111111111" . $config . " | " . $server . " | " . $db . " | " . $user . " | " . $pass); if ($server != 'null') { $dbcon = new PDOConnection("pgsql:host={$server};dbname={$db};port={$port}", $user, $pass); } else { $dbcon = new PDOConnection("pgsql:dbname={$db};port={$port}", $user, $pass); } function importar($dbcon, $tmpdir) { // Cria a query padrão de inclusão de dados $lista_tabelas = array("acao", "servidor_autenticacao", "local", "rede", "acao_excecao", "acao_rede", "so", "acao_so", "aplicativo", "aplicativo_rede", "aquisicao", "tipo_licenca", "software", "aquisicao_item", "computador", "descricao_coluna_computador", "grupo_usuario", "insucesso_instalacao", "usuario", "local_secundario", "log", "unid_organizacional_nivel1", "unid_organizacional_nivel1a", "unid_organizacional_nivel2", "patrimonio", "patrimonio_config_interface", "rede_grupo_ftp", "rede_versao_modulo", "software_estacao", "srcacic_chat", "srcacic_conexao", "srcacic_sessao", "srcacic_transf", "teste", "tipo_software", "tipo_uorg", "uorg", "usb_vendor", "usb_device", "usb_log"); echo "Limpando dados anteriores... "; foreach ($lista_tabelas as $tabela) { // Limpa as tabelas antes $dbcon->exec("truncate {$tabela} cascade"); } echo "feito.<br>"; foreach ($lista_tabelas as $tabela) { if (file_exists("{$tmpdir}/importacao/{$tabela}.csv")) { echo "Importando " . $tabela . "..."; // Copia do arquivo para a base $dbcon->exec("COPY {$tabela} FROM '{$tmpdir}/importacao/{$tabela}.csv' WITH DELIMITER AS ';' NULL AS '\\N' ESCAPE '\"' ENCODING 'ISO-8859-1' CSV"); echo " feito.<br>"; } } } function atualizar_seq($dbcon) { $lista_sequencias = array("aplicativo_id_aplicativo_seq", "aquisicao_id_aquisicao_seq", "class_property_id_class_property_seq", "class_property_type_id_class_property_type_seq", "classe_id_class_seq", "collect_def_class_id_collect_def_class_seq", "computador_coleta_historico_id_computador_coleta_historico_seq", "computador_coleta_id_computador_coleta_seq", "computador_id_computador_seq", "grupo_usuario_id_grupo_usuario_seq", "insucesso_instalacao_id_insucesso_instalacao_seq", "local_id_local_seq", "log_id_log_seq", "patrimonio_id_patrimonio_seq", "rede_grupo_ftp_id_ftp_seq", "rede_id_rede_seq", "rede_versao_modulo_id_rede_versao_modulo_seq", "servidor_autenticacao_id_servidor_autenticacao_seq", "so_id_so_seq", "software_id_software_seq", "srcacic_action_id_srcacic_action_seq", "srcacic_chat_id_srcacic_chat_seq", "srcacic_conexao_id_srcacic_conexao_seq", "srcacic_sessao_id_srcacic_sessao_seq", "srcacic_transf_id_srcacic_transf_seq", "teste_id_transacao_seq", "tipo_licenca_id_tipo_licenca_seq", "tipo_software_id_tipo_software_seq", "tipo_uorg_id_tipo_uorg_seq", "unid_organizacional_nivel1_id_unid_organizacional_nivel1_seq", "unid_organizacional_nivel1a_id_unid_organizacional_nivel1a_seq", "unid_organizacional_nivel2_id_unid_organizacional_nivel2_seq", "uorg_id_uorg_seq", "usb_log_id_usb_log_seq", "usuario_id_usuario_seq"); foreach ($lista_sequencias as $tabela) { // Atualiza as sequencias de auto-increment $dbcon->exec("SELECT nextval('{$tabela}')"); } } // Execuções echo "Iniciando importação...<br>"; $zipfile = "../src/Cacic/CommonBundle/Resources/data/importacao.zip"; $tmpdir = sys_get_temp_dir(); // Extrai os arquivos necessarios para a importação $zip = new ZipArchive(); $x = $zip->open($zipfile); echo "extraindo arquivo..."; if ($x === TRUE) { $zip->extractTo($tmpdir . '/importacao'); $zip->close(); echo " feito.<br>"; } else { die("<br>Erro na extração do arquivo: {$x}"); } // Importa os dados para o postgres $dbcon->exec("begin"); importar($dbcon, $tmpdir); $dbcon->exec("end"); atualizar_seq($dbcon); // Deleta os arquivos foreach (glob($tmpdir . '/importacao/*') as $filename) { unlink($filename); } rmdir($tmpdir . "/importacao"); // Fecha conexão com o banco $dbcon = null; return $this->redirect($this->generateUrl('cacic_migracao_cacic26')); }
/** * @param string $dsn * @param string|null $user * @param string|null $password * @param array|null $options */ public function __construct($dsn, $user = null, $password = null, array $options = null) { parent::__construct($dsn, $user, $password, $options); $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('Concrete\\Core\\Database\\Driver\\PDOStatement', array())); $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }
/** * @TODO: move to "SqlitePlatform" and rename to "registerExtraFunctions"? * * @param PDOConnection $sqliteConnection * * @return Client */ private function registerSqliteFunctions(PDOConnection $sqliteConnection) { $sqliteConnection->sqliteCreateFunction('EXTRACTVALUE', function ($string, $expression) { $dom = new \DOMDocument('1.0', 'UTF-8'); $dom->loadXML($string); $xpath = new \DOMXPath($dom); $list = $xpath->evaluate($expression); if (!is_object($list)) { return $list; } // @TODO: don't know if there are expressions returning more then one row if ($list->length > 0) { // @TODO: why it can happen that we do not have a type? https://github.com/phpcr/phpcr-api-tests/pull/132 $type = is_object($list->item(0)->parentNode->attributes->getNamedItem('type')) ? $list->item(0)->parentNode->attributes->getNamedItem('type')->value : null; $content = $list->item(0)->textContent; switch ($type) { case 'long': return (int) $content; break; case 'double': return (double) $content; break; default: return $content; } } // @TODO: don't know if return value is right return null; }, 2); $sqliteConnection->sqliteCreateFunction('CONCAT', function () { return implode('', func_get_args()); }); return $this; }
/** * {@inheritdoc} */ public function beginTransaction() { if ($this->_pdoTransactionsSupported() === true) { parent::beginTransaction(); } else { $this->exec('BEGIN TRANSACTION'); } }
/** * @expectedException \Doctrine\DBAL\Driver\PDOException */ public function testThrowsWrappedExceptionOnQuery() { $this->driverConnection->query('foo'); }
/** * {@inheritdoc} */ public function lastInsertId($name = null) { $id = null; if ($this->_pdoLastInsertId() === true) { $id = parent::lastInsertId(); } else { $stmt = $this->query('SELECT SCOPE_IDENTITY()'); $id = $stmt->fetchColumn(); $stmt->closeCursor(); } return $id; }
/** * {@inheritdoc} * * @see lastSequenceValue() */ public function lastInsertId($name = null) { return is_string($name) ? $this->lastSequenceValue($name) : parent::lastInsertId($name); }