コード例 #1
2
ファイル: Driver.php プロジェクト: ccq18/EduSoho
 /**
  * {@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);
     }
 }
コード例 #2
0
ファイル: Driver.php プロジェクト: Dren-x/mobit
 /**
  * {@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;
 }
コード例 #3
0
 /**
  * {@inheritdoc}non-PHPdoc)
  */
 public function query()
 {
     $args = func_get_args();
     $sql = $this->removeTableAlias($args[0]);
     $sql = $this->normalizeCount($sql);
     return parent::query($sql);
 }
コード例 #4
0
ファイル: Connection.php プロジェクト: neteasy-work/hkgbf_crm
 /**
  * @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;
 }
コード例 #5
0
 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];
 }
コード例 #6
0
ファイル: Driver.php プロジェクト: vectornet/dbal
 /**
  * {@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);
     }
 }
コード例 #7
0
ファイル: Connection.php プロジェクト: TuxCoffeeCorner/tcc
 /**
  * {@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);
 }
コード例 #8
0
 /**
  * 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;
 }
コード例 #9
0
ファイル: Client.php プロジェクト: Maksold/platform
 /**
  * Rollback transaction
  */
 public function rollbackTransaction()
 {
     if ($this->pdoConnection) {
         $this->pdoConnection->rollBack();
     }
 }
コード例 #10
0
 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'));
 }
コード例 #11
0
ファイル: PDOConnection.php プロジェクト: ceko/concrete5-1
 /**
  * @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);
 }
コード例 #12
0
ファイル: Client.php プロジェクト: xxspartan16/BMS-Market
    /**
     * @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;
    }
コード例 #13
0
 /**
  * {@inheritdoc}
  */
 public function beginTransaction()
 {
     if ($this->_pdoTransactionsSupported() === true) {
         parent::beginTransaction();
     } else {
         $this->exec('BEGIN TRANSACTION');
     }
 }
コード例 #14
0
 /**
  * @expectedException \Doctrine\DBAL\Driver\PDOException
  */
 public function testThrowsWrappedExceptionOnQuery()
 {
     $this->driverConnection->query('foo');
 }
コード例 #15
0
 /**
  * {@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;
 }
コード例 #16
0
ファイル: Connection.php プロジェクト: josemalonsom/ifx4dd
 /**
  * {@inheritdoc}
  *
  * @see lastSequenceValue()
  */
 public function lastInsertId($name = null)
 {
     return is_string($name) ? $this->lastSequenceValue($name) : parent::lastInsertId($name);
 }