PDO_CUBRID é um driver que implementa a interface PHP Data Objects (PDO) para permitir acesso do PHP a bancos de dados CUBRID.
Nota:
A versão atual do PDO_CUBRID não suporta conexão persistente agora.
Para construir a extensão PDO_CUBRID, o SGBD CUBRID deve estar instalado no mesmo sistema que o PHP. O PDO_CUBRID é uma extensão » PECL, então siga as instruções em Instalação das extensões PECL para instalar a extensão PDO_CUBRID. Emita o comando configure para apontar para a localização do diretório base do CUBRID da seguinte forma:
$ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows. Para informações detalhadas sobre a instalação no Linux e Windows manualmente, leia o arquivo build-guide.html no pacote PECL CUBRID para referência.
Recurso | Descrição |
---|---|
Cursores Roláveis | PDO_CUBRID suporta cursores roláveis. O tipo de cursor padrão é somente para frente, e você pode usar a opção do driver em PDO::prepare() para mudar o tipo de cursor. |
Timeout | PDO_CUBRID suporta definição de tempo limite de execução de declarações SQL; Você pode usar PDO::setAttribute() para definir o valor do timeout. |
Modo de Autocommit e Transação |
PDO_CUBRID suporta tanto o modo de autocommit quanto transações, e
o modo de autocommit está habilitado por padrão. Você pode usar
PDO::setAttribute() para mudar seu estado.
Se você usar PDO::beginTransaction() para iniciar uma transação, ela desabilitará automaticamente o modo de autocommit e restaurará após PDO::commit() ou PDO::rollBack(). Note que antes de desabilitar o modo de autocommit, qualquer trabalho pendente é automaticamente cometido. |
Múltiplas Declarações SQL | PDO_CUBRID suporta Múltiplas declarações SQL. Múltiplas declarações SQL são separadas por ponto e vírgula (;) |
Informações de Esquema | PDO_CUBRID implementa uma função PDO::cubrid_schema() para obter informações de esquema. |
LOBs | PDO_CUBRID suporta tipo de dado BLOB/CLOB. O LOB no PDO é
representado como um fluxo, então você pode inserir LOBs vinculando um fluxo,
e obter LOBs lendo um fluxo retornado pelo CUBRID PDO. Por exemplo:
Exemplo #1 Inserir LOBs no CUBRID PDO <?php
Exemplo #2 Buscar LOBs no CUBRID PDO <?php |
Meta de Coluna |
O PDOStatement::getColumnMeta() no CUBRID PDO
retornará uma matriz associativa contendo os seguintes valores:
|
Tipo de Dados de Coleção | PDO_CUBRID suporta tipo de dados SET/MULTISET/SEQUENCE. Se você não especificar o tipo de dado,
o tipo de dado padrão é char, por exemplo:
Exemplo #3 Inserir conjunto no CUBRID PDO com tipo de dado padrão. <?php
Exemplo #4 Especificar tipo de dado ao inserir conjunto no CUBRID PDO <?php
|
As constantes abaixo são definidas por
este driver e só estarão disponíveis quando a extensão tiver sido
compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas
constantes específicas do driver só devem ser usadas se este driver estiver sendo usado.
Usar atributos específicos de um driver com outro driver pode resultar em
comportamento inesperado. PDO::getAttribute() pode ser usada para
obter o atributo PDO::ATTR_DRIVER_NAME
para verificar o
driver, se o código puder ser executado com vários drivers.
As seguintes constantes podem ser usadas ao definir o atributo do banco de dados. Elas podem ser passadas para PDO::getAttribute() ou PDO::setAttribute().
Constante | Descrição |
---|---|
PDO::CUBRID_ATTR_ISOLATION_LEVEL | Nível de isolamento de transação para a conexão do banco de dados. |
PDO::CUBRID_ATTR_LOCK_TIMEOUT | Tempo limite de transação em segundos. |
PDO::CUBRID_ATTR_MAX_STRING_LENGTH | Somente leitura. O comprimento máximo da string para bit, varbit, char, varchar, nchar, tipos de dados nchar quando usando o API PDO CUBRID. |
As seguintes constantes podem ser usadas ao definir o nível de isolamento da transação. Elas podem ser passadas para PDO::getAttribute() ou retornadas por PDO::setAttribute().
Constante | Descrição |
---|---|
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | O nível de isolamento mais baixo (1). Uma leitura suja, não repetível ou leitura fantasma pode ocorrer para a tupla e uma leitura não repetível pode ocorrer para a tabela também. |
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE | Um nível de isolamento relativamente baixo (2). Uma leitura suja não ocorre, mas uma leitura não repetível ou fantasma pode ocorrer. |
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE | O isolamento padrão do CUBRID (3). Uma leitura suja, não repetível ou leitura fantasma pode ocorrer para a tupla, mas uma leitura repetível é garantida para a tabela. |
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE | Um nível de isolamento relativamente baixo (4). Uma leitura suja não ocorre, mas uma leitura não repetível ou fantasma pode ocorrer. |
PDO::TRAN_REP_CLASS_REP_INSTANCE | Um nível de isolamento relativamente alto (5). Uma leitura suja ou não repetível não ocorre, mas uma leitura fantasma pode. |
PDO::TRAN_SERIALIZABLE | O mais alto nível de isolamento (6). Problemas relacionados à concorrência (por exemplo, leitura suja, leitura não repetível, leitura fantasma, etc.) não ocorrem. |
As seguintes constantes podem ser usadas ao obter informações de esquema. Elas podem ser passadas para PDO::cubrid_schema().
Constante | Descrição |
---|---|
PDO::CUBRID_SCH_TABLE | Obtenha o nome e o tipo da tabela no CUBRID. |
PDO::CUBRID_SCH_VIEW | Obtenha o nome e o tipo da visão no CUBRID. |
PDO::CUBRID_SCH_QUERY_SPEC | Obtenha a definição da consulta da visão. |
PDO::CUBRID_SCH_ATTRIBUTE | Obtenha os atributos da coluna da tabela. |
PDO::CUBRID_SCH_TABLE_ATTRIBUTE | Obtenha os atributos da tabela. |
PDO::CUBRID_SCH_METHOD | Obtenha o método de instância. O método de instância é um método chamado por uma instância de classe. É usado com mais frequência do que o método de classe porque a maioria das operações é executada na instância. |
PDO::CUBRID_SCH_TABLE_METHOD | Obtenha o método de classe. O método de classe é um método chamado por um objeto de classe. Geralmente é usado para criar uma nova instância de classe ou inicializá-la. Também é usado para acessar ou atualizar atributos de classe. |
PDO::CUBRID_SCH_METHOD_FILE | Obtenha as informações do arquivo onde o método da tabela está definido. |
PDO::CUBRID_SCH_SUPER_TABLE | Obtenha o nome e o tipo da tabela que herda atributos. |
PDO::CUBRID_SCH_SUB_TABLE | Obtenha o nome e o tipo da tabela que herda atributos desta tabela. |
PDO::CUBRID_SCH_CONSTRAINT | Obtenha as restrições (constraints) da tabela. |
PDO::CUBRID_SCH_TRIGGER | Obtenha os disparadores (triggers) da tabela. |
PDO::CUBRID_SCH_TABLE_PRIVILEGE | Obtenha informações de privilégio da tabela. |
PDO::CUBRID_SCH_COL_PRIVILEGE | Obtenha informações de privilégio da coluna. |
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | Obtenha a tabela super direta da tabela. |
PDO::CUBRID_SCH_PRIMARY_KEY | Obtenha a chave primária da tabela. |
PDO::CUBRID_SCH_IMPORTED_KEYS | Obtenha chaves importadas da tabela. |
PDO::CUBRID_SCH_EXPORTED_KEYS | Obtenha chaves exportadas da tabela. |
PDO::CUBRID_SCH_CROSS_REFERENCE | Obtenha relação de referência de duas tabelas. |