Funções para conexão e manipulação de dados armazenados em SGBDs.
Conectando
Cria conexao com banco de dados.
Se já existir uma conexão criada, se desconecta primeiro. Ou seja, é feita uma conexão por vez.
Caso não sejam passados os parâmetros, serão utilizadas as configurações de banco que ficam no arquivo de configuração principal.
Recebe: ($array=parametros_de_conexao)
Retorna: TRUE (caso a conexao tenha sido feita) ou DIE (caso haja algum erro na conexao)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect(array("type"=>"mysql", "sever"=>"localhost", "user"=>"usuario", "password"=>"senha", "name"=>"banco", "prefix"=>"phpcoupe_"));
// ou utilizando as opcoes do arquivo principal
$Coupe->Coupe_Database->connect();
...
Lendo
Retorna o ponteiro para o resultado de uma query no banco de dados.
Recebe: ($string=query_sql)
Retorna: HANDLER (ponteiro para o resultado da consulta ao banco)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
$resultado = $Coupe->Coupe_Database->query("SELECT t.codnome, t.nome FROM tabela t WHERE t.codnome>5");
...
Elabora uma consulta de acordo com os parâmetros passados e retorna o ponteiro para o resultado da query no banco de dados.
Recebe: (array(campos), $string=nome_tabela, [$string=condicao], [$string=ordem], [$string=direcao], [$string=limite])
Retorna: HANDLER (ponteiro para o resultado da consulta ao banco)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
$resultado = $Coupe->Coupe_Database->select(array(codnome, nome), "tabela", "codnome>5");
...
Executa uma query e retorna o resultado como um array multi-dimensional.
Recebe: ($string=query_sql)
Retorna: ARRAY (posicoes do array identificados com o nome de cada coluna)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
$array = $Coupe->Coupe_Database->vector("SELECT t.codnome, t.nome FROM tabela t WHERE t.codnome>3");
...
Retorna uma consulta ao banco no formato de tabela xHTML.
É opcional exibir o cabecalho com o nome dos campos.
Recebe: ($string=query_sql, [bool=cabecalho])
Retorna: STRING (html com os resultados da consulta)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
return $Coupe->Coupe_Database->table("SELECT t.codnome, t.nome FROM tabela t WHERE t.codnome>3");
...
Pega informações (nome, tipo, tabela, se é chave, etc.) sobre as colunas de uma tabela.
Recebe: ($string=nome_tabela)
Retorna: VOID (array com os campos da tabela e seus atributos)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
$informacoes_tabela = $Coupe->Coupe_Database->fields("tabela_xpto");
echo print_r($informacoes_tabela);
...
Retorna uma consulta SQL em formato de lista ordenada mantendo a hierarquia dos resultados.
O método recebe três parâmentros:
1 -
uma matriz contendo os array com as opções de consulta
2 -
uma string com um valor usado para busca os registros
3 - um inteiro que informa o nível na lista (esse terceiro parâmentro é mais para uso interno).
Para fazer uma busca dinâmica, onde se procura sempre os filhos do registro apontado, o segundo parâmentro indica o id do registro pai.
Sendo assim, internamente esse valor ocupa o caracter {%parent%} utilizado na consulta SQL fornecida.
Exemplo: "SELECT * FROM tabela_xpto WHERE codigo=%parent%;".
Se o segundo parâmentro passado for "NULL", então, internamente, '=%parent%' é substituido por 'IS NULL' para buscar os registro que o campo é nulo.
Recebe: ($array=array( array($string="consulta_SQL", $string="campo_com_codigo", $string="campo_nome", $string="id_conteudo_para_link") [, array(...)] ) [, $string="valor_da_condicao_de_busca"] [,$int=nivel_da_pesquisa])
Retorna: STRING (lista com resultados da consulta)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
// na matriz abaixo indicamos uma lista que terah dois niveis
// no primeiro irah buscar os tamanhos de animais cadastrado no banco
// para cada tamanho encontrado, irah selecionar os animais correspondentes
$parameters = array(
array("SELECT code_tamanho, tamanho FROM tamanho_animais;", "code_tamanho", "tamanho", "animais.tamanhos"),
array("SELECT code_animal, animal FROM animais WHERE code_tamanho=%parent%;", "code_animal", "animal", "animais.animais")
);
// gera a lista que terah dois niveis com os animais separados por tamanho
return $Coupe->Coupe_Database->makelist($parameters);
...
Caso queira montar uma lista auto-referênciada (como uma lista genealógica) onde não há exatamente categorias, mas um item é dependente de outro item na mesma tabela, fazemos da seguinte forma:
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
// na matriz abaixo indicamos uma unica tabela que servirah para montar a lista
// como eh uma lista auto-referenciada, usamos apenas uma tabela
// devemos fazer a consulta com uma condicional indicando o campo que faz o controle da hierarquia
$parameters = array(
array("SELECT code_pessoa, nome FROM pessoas WHERE filho_de=%parent%;", "code_pessoa", "nome", "editar.pessoa"),
);
// dessa vez temos que indicar no segundo parametro, o valor para iniciar a consulta
// no nosso exemplo, se a coluna 'filho_de' for nula, indica que a pessoa nao tem pai
// assim, apos encotrar todos que nao tem pai, comeca a descer na arvore achando todos filhos
return $Coupe->Coupe_Database->makelist($parameters, "NULL");
...
Manipulando
Deleta linhas de uma determinada tabela.
Recebe: ($string=nome_tabela, [$string=condicao], [$string=ordem], [$string=direcao], [$string=limite])
Retorna: HANDLER (ponteiro para o resultado da consulta ao banco)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
$Coupe->Coupe_Database->delete("tabela", "codnome>5");
...
Insere valores nos campos de uma tabela.
Recebe: ($array=array(campos=>valores), $string=nome_tabela)
Retorna: HANDLER (ponteiro para o resultado da consulta ao banco)
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
$Coupe->Coupe_Database->insert(array("codnome"=>"6", "nome"=>"Fulano de tal"), "tabela");
...
Desconectando
Desconectar do banco.
Recebe: VOID
Retorna: VOID (apenas fecha a conexao do ponteiro '$this->connection')
...
$Coupe->import("Coupe_Database");
$Coupe->Coupe_Database->connect();
$Coupe->Coupe_Database->disconnect();
...
Versão atual: 0.5
Licenciado sob Creative Commons by-nd
Desenvolvido por Samuel Corradi 2008.