Consulta PDO com passagem de parâmetros no PHP

Vamos utilizar essa estrutura de tabela para nosso exemplo:
1 2 3 4 5 6 7 8 9 10 11 |
CREATE TABLE `TAB_USUARIO` ( `USU_ID` int(4) NOT NULL AUTO_INCREMENT, `USU_MATRICULA` char(10) NOT NULL, `USU_NOME` varchar(60) NOT NULL, `USU_PRIVILEGIO` varchar(20) NOT NULL, `USU_DEPARTAMENTO` varchar(45) NOT NULL, `USU_SENHA` varchar(20) NOT NULL, `USU_EMAIL` varchar(60) NOT NULL, `USU_DATA_HORA` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`USU_ID`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; |
Abaixo o código PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php require_once 'conexao.php'; /* Valores a serem validados */ $email = 'wllfl@ig.com.br'; $senha = '123456'; $pdo = Conexao::getInstance(); $sql = "SELECT USU_MATRICULA, USU_NOME, USU_PRIVILEGIO FROM TAB_USUARIO WHERE USU_EMAIL = ? AND USU_SENHA = ?"; $stm = $pdo->prepare($sql); $stm->bindValue(1, $email); $stm->bindValue(2, $senha); $stm->execute(); $total_registros = $stm->rowCount(); /* Verifica se foi encontrado algum registro */ if ($total_registros == ) { echo "Usuário ou Senha inválido!"; } else { echo "Usuário validado com sucesso!"; } ?> |
1 2 |
$email = 'wllfl@ig.com.br'; $senha = '123456'; |
2 – A variável $pdo recebe uma instância da conexão PDO já configurada.
1 |
$pdo = Conexao::getInstance(); |
1 |
$sql = "SELECT USU_MATRICULA, USU_NOME, USU_PRIVILEGIO FROM TAB_USUARIO WHERE USU_EMAIL = ? AND USU_SENHA = ?"; |
1 |
$stm = $pdo->prepare($sql); |
1 2 |
$stm->bindValue(1, $email); $stm->bindValue(2, $senha); |
6 – Executa a instrução SQL.
1 |
$stm->execute(); |
7 – A função rowCount() captura a quantidade de registros retornado pela instrução SQL e atribui para variável $total_registros.
1 |
$total_registros = $stm->rowCount(); |
8 – Para finalizar é verificado se a quantidade de registros retornados é igual a zero ‘0’, caso verdadeiro significa que não foi encontrado na tabela um usuário com os mesmos dados de e-mail e senha, então é exibida uma mensagem ‘Usuário ou Senha inválido!’. Senão se a quantidade de registros for maior que zero ‘0’ então existe um usuário com os mesmo dados de e-mail e senha, nesse caso é exibida uma mensagem ‘Usuário validado com sucesso!’.
1 2 3 4 5 |
if ($total_registros == ) { echo "Usuário ou Senha inválido!"; } else { echo "Usuário validado com sucesso!"; } |
Demonstrei nesse artigo como executar consultas passando parâmetros via PDO no PHP, nesse exemplo utilizei uma validação bem básica de e-mail e senha, mas já foi possível observar a facilidade de não se preocupar com validações nos dados enviados como parâmetros para a instrução SQL.
Bom pessoal até a próxima ….