Ir para conteúdo
  • Cadastre-se

PHP PDO Manager - Script para gerir pesquisas à base de dados.


Posts recomendados

Boa tarde, hoje venho trazer-vos uma classe que eu desenvolvi, este script faz a gestão de consultas à base de dados e já me ajuda a bastante tempo, e sempre que posso, eu o atualizo acrescentando novas funcionalidades e claro, corrigindo bugs que surgem ao decorrer do seu uso.

A ideia é fazer consultas de maneira simples, prática e rápida, sem ter que escrever longos códigos SQL, e ter o resultado esperado com poucas linhas códigos.

Para usar este script é muito fácil, darei exemplos do seu uso:

Download

O conteúdo está oculto, favor efetuar login ou se cadastrar!



Instalação

  • Faça a extração dos arquivos dentro da pasta do seu site ou em uma pasta de sua preferência.
  • Abra o arquivo database.php, defina as configuração da sua base de dados.
  • Faça um include da nossa classe dentro do seu arquivo base, exemplo, dentro do index.php depois da tag <?php coloque o seguinte código: require_once 'pdo_manager.php'; feito isso o script estará pronto para uso :).

Fazendo conexão à Base de dados.

Vamos usar como exemplo um arquivo chamado index.php, inicialmente a estrutura do seu código deve parecer-se com isto:

 



O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Em seguida, precisamos habilitar a conexão com a nossa base de dados, para fazer isso siga os passos descritos no código abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Novas Atualizações.

 

08/10/014 - A classe agora permite fazer múltiplas consultas e operações.

 

08/10/014 - Foi criado novos métodos e melhorado os que já existiam.

 

08/10/014 - Foi inserida a documentação da classe.

02/10/014 - Agora já é possível fazer consultas entre intervalos.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

02/10/2014 - Foi melhorado o método de relação de tabelas "join()".

Antes:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

Agora:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



02/10/2014 - Agora é possível inserir informações na base de dados.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



02/10/2014 - Agora é possível atualizar informações na base de dados.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!
O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



02/10/2014 - Agora é possível remover informações da base de dados.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Supondo que queremos retornar todos os personagens da tabela characters da nossa base de dados, segue um exemplo de código abaixo:

Primeiro devemos especificar o nome da tabela para que queremos retornar os resultado, neste caso a characters, segue um exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Agora, iremos retornar todos os resultados da tabela characters, perceba que no código, eu chamei no final o método getAll(), este método tem como objetivo retornar todos os resultados, diferente do método get() (iremos falar mais sobre este método, não agora, mais na frente), que retornar apenas um resultado, colocamos um "*" (asterisco) para chamar todas as colunas da nossa tabela, as colunas podem ser chamadas também de forma individual, vejamos logo em seguida, segue o exemplo abaixo de todo o código:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Agora, se vocês notarem, a consulta só retornou 100 resultados, calma por defeito, o eu fiz com que o script limitasse a quantidade de resultados em 100, mas isto pode ser facilmente alterado para o valor que assim desejar, segue um exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



E se agora quisermos filtrar os nossos resultados ? exemplo, queremos apenas o jogadores que tem nível 80, como fazemos esta consulta ?, acrescentamos logo após o método select, o método where, segue um exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Exemplo de como todo o seu código deve se parecer:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Agora, se quisermos saber a quantidade de dados que foram encontrados?, por exemplo, supondo que fizemos uma pesquisa que retornou 57 resultados, queremos obter este valor, o 57, para isso devemos chamar o método get_result_count() depois de já ter feito a consulta, segue um exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Para limitar a quantidade de colunas retornadas, basta passa-las como entrada no método select, darei um exemplo no código abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Se preferirem, podem também passar o nome das colunas através de arrays, veja o exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Para ordenar os resultados, use o método order_by e se a ordem é crescente ou decrescente, exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Atualização: 29/09/2014
----------------------------------------------------------------------
Agora é possível usar outros operadores na pesquisa, exemplo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 




Para retornar apenas 1 resultado, utilize o método get(), é útil caso queira fazer autenticações como login e senha, veja o exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Caso pretenda usar aliases para renomear tabelas, não se preocupe, você pode fazer o uso desta opção :), segue um exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



No exemplo acima, acrescentamos um "c", a tabela characteres agora se chama "c", esta funcionalidade é útil caso tenhamos que fazer relações entre tabelas, e falando em relações de tabelas, para fazer a relação entre 2 tabelas, basta usar o método join() e dizer o lado que pretende juntar, a tabela e qual coluna ( foreing key ) será comparada, segue um exemplo abaixo:

Antes, não se esqueça de trocar o nome da chave primária da tabela ( por defeito se chama "id" ), para troca-la, basta inserir o seguinte código:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Sendo assim podemos agora chamar as colunas da tabela 'accounts' junto com as colunas da tabela 'characters', note que acrescentamos um aliase para a tabela accounts e outra aliase para a tabela characters, ficando assim a chamada das colunas:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Estes aliases são usados para distinguir uma tabela da outra, já que foi feito uma relação entre as duas.
Todo o seu código deve parecer-se com isso:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Se quiser mudar o lado em que a relação está sendo feita, basta passar a opção pretendida, no caso o LEFT, RIGHT ou INNER no último parâmetro do método join, veja o exemplo abaixo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Exemplo de uma relação entre 3 tabelas.

O exemplo que irei fazer a seguir, relaciona o jogador com seus respetivos items.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 




Mais 1 exemplo:
Script: Olimpíadas Nobles

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Resultado:

3AU9mLH.jpg?1


Outro exemplo:
Script: Castle Siege

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 



Resultado:

2lXg785.jpg



Espero que não tenha sido confuso todas as explicações citadas acima, eu irei revisar e tentar melhorar as explicações sempre que possível.

Tentarei abordar outros exemplos de como remover, apagar e usar alguns métodos helpers que foram criados para auxila-los ainda mais.

Abra a classe principal e verá que há outras opções que podem ser exploradas, todos os métodos estão comentados.


Eu gostaria de melhorar esta classe, e caso seja útil para vocês e queiram ajudar, deem dica de como posso tornar-la ainda melhor.

( Os parâmetros de entrada de dados é feita com o bindparam da classe PDO, então fiquem tranquilos com relação a SQL inject, :) ).

Há 3 exemplos junto a classe, e caso tenham dúvidas, ou queiram ajuda em algo, é só perguntar :).


Créditos: ViNy.

Editado por Wallace Carvalho
LinusXX.png

Link para o comentário
Compartilhar em outros sites


Grande ViNy, esse script será uma mão na roda no informer :ph34r:

Caso tenha alguma sugestão para aplicativos, por favor envie por MP.

 WhatsApp: 22 98156-2591 

L2JDREAM PROJECT

Link para o comentário
Compartilhar em outros sites

É realmente um belo script, e a explicação ta nota 9 hahaha, só não ta 10 porque na partes dos Items, deu um nó na minha cabeça KKKKKK... Parabéns

 

É, está meio confuso mesmo, vou atualiza-lo depois e deixar as explicações mais claras.

LinusXX.png

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Muito bom Viny

 

Um pouco avançado para a maioria dos membros mas realmente muito bom!

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Muito bom Viny

 

Um pouco avançado para a maioria dos membros mas realmente muito bom!

 

Pois hehe, mas espero que seja útil para alguém, talvez esta classe automatize mais estes processos de construção de SQL, vejo tantos scripts x,y, e z por aqui, tudo mal otimizadas e com um agravante, sempre usam as funções mysql que será descontinuada nas futuras versões do PHP, obrigado pelo comentário Grundor, e bom falar consigo novamente depois de tanto tempo.

LinusXX.png

Link para o comentário
Compartilhar em outros sites

È realmente muito bom mesmo algumas coisas é confusa mais é nosso intelecto ainda baixo nada que algumas horas de estudo não resolva

atualmente estou trabalhando em um site com scripts iguais ou mais ou menos parecido com esse então tive pouca dificuldade pra entender

mais se puder pro futuro simplificar mais.

Vais ficar bem bacana

 

 

Na questão do msql descontinuar vai ser fods mais

ja temos ai o "msqli" bem mais simples e também algumas funções q nem se uza eles^^

X-Trap

Link para o comentário
Compartilhar em outros sites

È realmente muito bom mesmo algumas coisas é confusa mais é nosso intelecto ainda baixo nada que algumas horas de estudo não resolva

atualmente estou trabalhando em um site com scripts iguais ou mais ou menos parecido com esse então tive pouca dificuldade pra entender

mais se puder pro futuro simplificar mais.

Vais ficar bem bacana

 

 

Na questão do msql descontinuar vai ser fods mais

ja temos ai o "msqli" bem mais simples e também algumas funções q nem se uza eles^^

 

Mas preferi me aventurar mesmo no PDO hehe, o tópico foi atualizado, novas funcionalidades foram inseridas.

 

02/10/014 - Agora já é possível fazer consultas entre intervalos.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

 

02/10/2014 - Foi melhorado o método de relação de tabelas "join()".

 

Antes:

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

Agora:

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

 

02/10/2014 - Agora é possível atualizar informações na base de dados.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!
O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

 

02/10/2014 - Agora é possível remover informações da base de dados.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

Editado por ViNy
LinusXX.png

Link para o comentário
Compartilhar em outros sites

 

Mas preferi me aventurar mesmo no PDO hehe, o tópico foi atualizado, novas funcionalidades foram inseridas.

 

02/10/014 - Agora já é possível fazer consultas entre intervalos.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

 

02/10/2014 - Foi melhorado o método de relação de tabelas "join()".

 

Antes:

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

Agora:

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

 

02/10/2014 - Agora é possível atualizar informações na base de dados.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!
O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

 

02/10/2014 - Agora é possível remover informações da base de dados.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

Cara sou apaixonado por programação e quando vejo possibilidade mais Nossa fico doido

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Mais é muito bacana as possibilidade do PDO

e parece mais simples até me aventurei em fazer ums codigo aqui!!^^:)

X-Trap

Link para o comentário
Compartilhar em outros sites

Cara sou apaixonado por programação e quando vejo possibilidade mais Nossa fico doido

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Mais é muito bacana as possibilidade do PDO

e parece mais simples até me aventurei em fazer ums codigo aqui!!^^ :)

 

Pois hehe, bem, minha última atualização da semana.

 

02/10/2014 - Agora é possível inserir informações na base de dados.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

LinusXX.png

Link para o comentário
Compartilhar em outros sites

 

Pois hehe, bem, minha última atualização da semana.

 

02/10/2014 - Agora é possível inserir informações na base de dados.

 

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

Cara é o seguinte tu tinha que fazer umas vídeo aulas completa ou o mais completa possivel

pra vender ou disponibilizar

se tu vedece pode ter sertesa eu compraria!!

 

até pq palavras falada e explicada a pessoa entende mais facil

X-Trap

Link para o comentário
Compartilhar em outros sites

Cara é o seguinte tu tinha que fazer umas vídeo aulas completa ou o mais completa possivel

pra vender ou disponibilizar

se tu vedece pode ter sertesa eu compraria!!

 

até pq palavras falada e explicada a pessoa entende mais facil

 

Não tenho intenção de explicar mais do que já foi explicado, vou melhorando os textos ao longo do tempo, até porque acredito que esta classe terá pouca utilidade para a maioria dos membros penso eu, mas será de grade utilidade para que já conhece mais o menos bem a programação e queira integra-lo aos seus projetos, pois estas pessoas sabem o quão importante é automatizar as nossas tarefas nos dias de hoje, bem eu agradeço pelo seu feedback, obrigado.

 

Qualquer coisa, há outros exemplos simplificados aqui.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Editado por ViNy
LinusXX.png

Link para o comentário
Compartilhar em outros sites

  • 1 year later...
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.