Classe PHP para conexão com banco de dados MySQL
30 de novembro de 2007 8 comentários
Há alguns meses atrás, criei uma classe PHP para conexão com banco de dados MySQL. Nada muito complexo - chega a ser até bem simples, na verdade. Ela possui a capacidade de se conectar a 1 servidor por vez e foi feita utilizando orientação a objetos; com ela, pode-se fazer qualquer operação SQL, tal como insert, select, update, delete, etc.
O arquivo está bem comentado, a meu ver, e, creio, não haverá maiores problemas para entender o funcionamento da classe.
Tudo o que se deve fazer, para começar a utilizá-la, é preecher os valores de algumas constantes, logo no início do código. Opcionalmente, pode-se alterar as mensagens para cada tipo de erro. Também, lembrar-se de referenciar corretamente o link de “voltar” para quando cada erro acontece.
Dependendo da aplicação, é certo de não se limitar a somente uma query por página. Então, para cada consulta SQL que se quiser efetuar, não é preciso que se chame o método construtor. Conforme o manual oficial do PHP, a respeito da função “mysql_query”:
A conexão MySQL. se o identificador de conexão não for especificado, a ultima conexão aberta por mysql_connect() é assumida. Se uma conexão assim não for encontrada, ela irá tentar criar uma como se a função mysql_connect() fosse chamada sem argumentos. Se uma conexão não for encontrada ou estabelecida, um aviso de nível E_WARNING é gerado.
Então, depois da primeira chamada do método construtor, caso se queira realizar outra query, basta chamar a função nativa mysql_query() que, conforme as especificações oficiais, o script utilizará a última conexão aberta.
Até hoje a classe PHP tem me servido bem, mas se alguém tiver algum conselho de como a classe pode ser melhorada e quiser compartilhar com os outros leitores, eu agradeço! Ah, e se alguém baixar a classe, usar e gostar, também comente! :-D











Gevã (30/11/2007)
Bem interessante Tárcio. Um try catch lá em resultado ficaria bacana. O uso de self ficou legal mas mas preferiria $this. Que query você costuma passar para o construtor para testar o banco? Ou você usa uma nova conexão toda vez que for fazer uma query?
Tárcio Zemel (30/11/2007)
@Gevã
É, na época eu pensei num tratamento de exceções, mas acabou que implementei desse jeito, mesmo… Por falar nisso, você saberia me dizer quais seriam os benefícios em se usar try/catch, em detrimento do que está atualmente?
Quanto à maneira de se usar, coloquei um <ins> no artigo, em sua homenagem! :-)
Gevã (30/11/2007)
Sobre o try/catch em uma palavra: “buniteza” :-D, código fica mais elegante. Vantagem de verdade é que você não precisaria do @ para bloquear o aviso do erro. O try/catch também oferece uma maneira de você tratar o aviso de erro de forma mais flexível. E também é útil quando um dado enviado por um usuário pode causar algum erro. Mas para ser sincero não costumo usá-lo mesmo.
Jailton Associação dos Desempregados do Estado de São Paulo (27/06/2008)
Bom dia senhores sou diretor desta entidade e estamos em busca de uma pessoa para desenvolver um banco de dados para que as pessoas desempregadas possa atraves do nosso site em construção possa se cadastrar no nosso site somos uma entidade que está iniciando agora e precisamos de ajuda para que podemos ajudar as pessoas desempregadas nos sabemos que quando o nosso site for ao ar muitas pessoas vão se cadastrar devido ao nº de pessoas desempregadas que existem hoje por iste motivo estou pedindo ajuda para lançar este site no ar.
Tárcio Zemel (30/06/2008)
@ Jailton
Olá, Jailton! Este espaço virtual não presta consultorias e serviço de desenvolvimento web, diretamente. Entretanto, já enviei um e-mail para o Sr. para tratarmos de sua questão.
Leo (23/07/2008)
Olá, Tarcio!
Essa classe pode ser melhorada.
Eu utilizo um método exclusivo para insert,update e delete que retorna um true se forem executadas corretamente, e ainda guardo o último id em um atributo(last_id)!
Outro método eu exporto um objeto para querys que resultam apenas uma linha, utilizando a função: mysqli_fetch_object()
E um último método que retorna um array, com um objeto em cada. Assim eu tenho um array com 1 objeto cada, para querys que retornam uma lista.
Em breve colocarei no meu site e lhe mostro!
Abs
Tárcio Zemel (23/07/2008)
@ Leo
Oi, tudo bem? Obrigado pelas dicas e comentários a respeito desta classe! Como disse, é algo bem simples, mesmo, somente para facilitar um pouco a conexão comum a bancos de dados.
Quando você escrever o artigo sobre a classe que você fez coloque aí nos comentários que dou uma olhadinha e indico aqui no desenvolvimento para web!
Abraços e apareça para trocarmos idéias! ;-)
Pingback em 30 de novembro de 2007