Bem, sou fã incondicional do Framework da Zend.
Um de seus componentes é Zend_DB, que faz toda a parte de conexão, e manipulação do Banco de dados.
Irei neste artigo apenas explicar de forma básica como realizar a conexão com o banco de dados, e executar algumas operações de sql , de uso diário.
Tendo o ZendFrameWork corretamente instalado e configurado em seu ‘include path’, poderemos prosseguir.
Abaixo exemplo de conexão a um banco Mysql, usando o driver Pdo_Mysql:
$config = array
(
'host' => 'localhost',
'username' => 'usuariodobanco',
'password' => 'senhadobancodedados',
'dbname' => 'nomedobancodedados'
)
$_resource = Zend_Db::factory('Pdo_Mysql', $config);
Na variavel $_resource você receberá um objeto do tipo ‘Zend_Db_Adapter_Abstract’.
Podemos recurperar um resultado de um select com o seguinte código:
$sql = "SELECT * FROM cidades WHERE nome = 'Tijucas'";
$result = $_resource->fetchAll($sql);
Por padrão, fetchAll retorna um array de linhas de forma associativa.
As chaves dos arrays são as colunas ou aliases selecionadas na sql.
Bom pra começar e ter uma idéia é isso.
O assunto é extenso, passando desde classes para manipular a tabela, as linhas da tabela, a controle de statment ( begin, comit, rollback) entre outros.
Até a próxima.
December 12th, 2007 by alexm
Olá,
Pra quem não sabe, existe um método ‘mágico’ usado como ultima tentativa para carregar uma classe antes que o PHP retorne um erro.
Esse método tem a seguinte assinatura:
O argumento de entrada recebido é o nome da classe que o Interpretador esta procurando.
Então se sempre usarmos as boas práticas e tivermos nossos arquivos e classes em uma Estrutura hierárquica bem organizado podemos utilizar o método a nosso favor, e dar adeus a requires_onces em nossas classe, veja o exemplo abaixo:
Diretório: Unetvale:
Arquivo: Core.php -> Classe: Unetvale_Core
Arquivo: Auth.php -> Class: Unetvale_Auth
Arquivo: Auth/Lib/Ldap.php -> Class: Unetvale_Auth_Lib_Ldap
function __autoload($className){
if (ereg('_', $className)) {
$file = null;
$path = str_replace('_', DIRECTORY_SEPARATOR, $className);
$file = $path . '.php';
require_once($file);
}
}
Pronto, basta ter o include_path apontando tambem para os diretorios onde temos nossa bibliotecas e esta tudo resolvido.
abraços
December 6th, 2007 by alexm
É mais fácil para debugar e mante-lo mais tarde.
Escrever um codigo legivel, organizado,usando tabulação, nomes auto-sugestivos, e fazendo a aplicação em partes pequenas, funcionais, e reusáveis.
Abaixo um exemplo básico de como NÃO fazer:
if($c!==mir($c)){$d=strtolower(mirC($c));}else{$d=$c;}
e abaixo um exemplo mais organizado:
if ($input !== checkForSpellingErrors($input))
{
$output = strtolower(correctSpelling($input));
}
else
{
$output = $input;
}
Mais fácil não ?
December 5th, 2007 by alexm