leitura de
Encontrou um problema no conteúdo? Por favor, deixe seu comentário!

Fala minha gente!

Hoje vou mostrar para vocês como usar a extensão MySQLi (MySQL Improved ou MySQL Melhorado) do MySQL.

Já falei um pouco sobre o MySQLi nesse post, mas foi sobre o método procedural, e hoje vamos falar sobre o método orientado a objetos.

Antes de mais nada: o MySQLi só está presente na versão 4.1.3+ do MySQL e na versão 5 do PHP, se você tem um servidor que não tenha alguma dessas versões, se mate. :)

E vejam que coisa interessante está escrita na Overview do MySQLi:

Note: If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use this extension.

Que em tradução livre seria:

Nota: Se você está usando a versão 4.1.3 ou superior do MySQL é altamente recomendável que você use essa extensão.

Começando do começo: O velho modo

Acredito que todos vocês já viram uma conexão e consulta MySQL feita da seguinte forma:

Não há nada de especial com esse código… Conectamos ao MySQL e depois procuramos todas as notícias ativas e anteriores ao dia de hoje (inclusive)… O código por si só não é feito nem “mal organizado”, mas isso é por que vocês ainda não conhecem o MySQLi!

Orientação a Objetos: a beleza programação

Agora veja o código que faz a mesma coisa que o anterior, só que em sua versão MySQLi orientada a objetos:

De primeiro contato sei que muita gente vai achar que o MySQLi é mais complicado, é só ver o número de linhas: quase o dobro.. Mas o MySQLi tem uma vantagem indescutível em cima do MySQL normal: a segurança.

Primeiro nós PREPARAMOS uma consulta com um local para receber um valor variável… É aquela interrogação.

Depois nós dizemos que o local reservado receberá um conteúdo do tipo string (s) com valor $data.. Ou seja, se $data fosse um inteiro ou booleando a consulta daria um erro, ela só aceitará strings, e digo mais: strings que não modifiquem a consulta… se for uma [](/?s=SQL+Injection) o MySQLi irá escapá-la e ele [o ataque] não funcionará!

Depois é só executar, reservar variáveis para o resultado e usá-las com um fetch() normal.. ;)

Vejam um exemplo de consulta com três parâmetros: duas strings e um inteiro:

Nessa consulta nós reservamos espaços para três variáveis… Depois nós passamos os seus tipos e valores usando o método bind_param(), o primeiro parâmetro traz os tipos dos valores, no exemplo foi usado “sis” que significa: uma string, um integer (inteiro) e uma string… Depois nós passamos os valores normalmente.. :)

Os tipos de valores aceitos pelo MySQLi são:

  • i para integer (inteiro)
  • s para string
  • d para double (decimal)
  • b para blob

Quem quiser saber um pouco mais sobre MySQLi, é só checar a documentação no php.net, e não se esqueça de deixar o seu comentário agradecendo (ou reclamando o.O)!

Espero que tenham gostado! :)

Thiago Belem / Blog

Thiago Belem


Publicado

Thiago Belem / Blog

Thiago Belem / Blog

Artigos e tutoriais sobre desenvolvimento WEB

Continue lendo