Fernando Sena - Programação & Tecnologia Digital
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Palavras-chaves

Últimos assuntos
» Wii ganha versão de 'Street Fighter II' para Mega Drive com modo on-line
MySQL Orientado a Objetos no PHP Icon_minitime1Qua 16 Nov - 16:14 por fernandosena

» Segurança e redes sem fio
MySQL Orientado a Objetos no PHP Icon_minitime1Qua 16 Nov - 16:11 por fernandosena

» Nokia lançará tablet com Windows 8 em junho de 2012, diz executivo
MySQL Orientado a Objetos no PHP Icon_minitime1Qua 16 Nov - 16:05 por fernandosena

» Empresa registra aumento de 472% no número de vírus para Android
MySQL Orientado a Objetos no PHP Icon_minitime1Qua 16 Nov - 16:03 por fernandosena

» YouTube investe US$ 100 milhões em vídeos
MySQL Orientado a Objetos no PHP Icon_minitime1Sex 7 Out - 8:34 por fernandosena

» Todos os títulos futuros da Microsoft devem trazer suporte para o Kinect
MySQL Orientado a Objetos no PHP Icon_minitime1Sex 7 Out - 8:25 por fernandosena

» Resident Evil 5 - PC
MySQL Orientado a Objetos no PHP Icon_minitime1Sex 7 Out - 8:22 por fernandosena

» Novo trailer de Assassin’s Creed Revelations é lançado
MySQL Orientado a Objetos no PHP Icon_minitime1Sex 7 Out - 8:12 por fernandosena

» Biostar apresenta nova placa-mãe que permite acesso remoto via smartphones
MySQL Orientado a Objetos no PHP Icon_minitime1Sex 7 Out - 8:08 por fernandosena

novembro 2024
SegTerQuaQuiSexSábDom
    123
45678910
11121314151617
18192021222324
252627282930 

Calendário Calendário

Blog
Fórum grátis


MySQL Orientado a Objetos no PHP

Ir para baixo

MySQL Orientado a Objetos no PHP Empty MySQL Orientado a Objetos no PHP

Mensagem por fernandosena Sex 2 Set - 13:23

O PHP 5 (que já não é novidade) chegou e trouxe consigo diversas melhorias no campo da orientação a objetos, veio recheado de classes que se mostram úteis em diversas situações. Entre tais classes está a MySQLi, que permite a interação com banco de dados MySQL de forma orientada a objetos. O que veremos aqui é uma introdução ao uso dos recursos do MySQLi, que vai bem além do que será mostrado.

Para começar, uzaremos uma base de dados (banco de dados ou database, se preferir, dá na mesma) de exemplo como a abaixo (vou chamada de usuarios):

usuario senha email
fulano 123456 fulano@exemplo.com.br
beltrano asdfgh beltrano@exemplo.com.br
cicrano abcdef cicrano@exemplo.com.br
Um exemplo simples da forma tradicional de uso seria:

<?php
// Acesso de usuário
$usuario = "fulano";
$senha = "123456";

// Conexão
$banco = mysql_connect("localhost", "usuario", "senha");
// Banco
mysql_select_db("teste", $banco);

// Query
$res = mysql_query("SELECT * FROM usuarios WHERE usuario='$usuario' AND senha='$senha'", $banco);

// Lendo o resultado
if($resultado = mysql_fetch_array($res)) {
// E aqui você continua...
}
?>
Alguma coisas mudam quando se faz este serviço usando MySQLi. O que é de se esperar: tudo começa na instanciação do objeto da classe, que faz logo a conexão com o banco e a disponibiliza. O construtor recebe diversos parâmetros, mas os que mostrarei são os quatro primeiros, que correspondem a servidor, usuario, senha e banco, as primeiras linhas do código anterior ficariam assim:

<?php
// Acesso de usuário
$usuario = "fulano";
$senha = "123456";

// Conexão e banco
$banco = new MySQLi("localhost", "usuario", "senha", "teste");
Se os dados informados estiverem corretos, agora a variável $banco irá apontar para um objeto da classe MySQLi. Em seguida devemos chamar algum método da classe para continuar trabalhando, o equivalente à função mysql_query é o método MySQLi::query, que recebecomo parâmetro a string com o comando SQL e retorna um objeto MySQLi_Result no caso se um comando SELECT, SHOW, DESCRIBE ou EXPLAIN ou um booleano (TRUE ou FALSE) para os demais (como DELETE ou UPDATE). Então teremos:

// Query
$res = $banco->query(“SELECT * FROM usuarios WHERE usuario=’$usuario’AND senha=’$senha’”);

Finalmente executamos a consulta, podemosentão varrer os resultados obtidos, para isso teremos em mãos os métodos (os mais comuns de serem usados) MySQLi_Result::fetch_array, MySQLi_Result::fetch_assoc, MySQLi_Result::fetch_row e MySQLi_Result::fetch_object. Para compatibilidade com o primeiro exemplo, vejamos com MySQLi_Result::fetch_assoc:

// Lendo o resultado
if($ressultado = $res->fetch_assoc()) {
// E aqui você continua...
}
?>
Isso fez o serviço que queriamos de forma orientada a objetos, mas não necessariamente aumenta a segurança do código, algo que poderia fazer isso é o uso de Prepared Statement, que é possível de ser usado com MySQLi, mas este artigo se tornaria grande demais, por hora, vejamos o resultado final completo:

<?php
// Acesso de usuário
$usuario = "fulano";
$senha = "123456";

// Conexão e banco
$banco = new MySQLi("localhost", "usuario", "senha", "teste");

// Query
$res = $banco->query("SELECT * FROM usuarios WHERE usuario='$usuario'AND senha='$senha'");
// Lendo o resultado
if($ressultado = $res->fetch_assoc()) {
// E aqui você continua...
}
?>
fernandosena
fernandosena
Admin

Mensagens : 155
Data de inscrição : 01/09/2011
Idade : 60
Localização : Salvador-BA

http://www.wix.com/fernandopadre/padre

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos