Olá, estou tentando fazer uma consulta no banco de dados passando parâmetros em PHP, o usuário insere o e-mail e depois faz a consulta no banco de dados coletando o nome e e-mail registrados no banco de dados.
Código - consulta.php
Aqui é o código que faz a consulta:
<?php
include "..\conexao.php";
$email = $_POST['usuario_email'];
$sql_login = ("SELECT nome, email FROM usuarios WHERE email = :EMAIL");
$rs = $PDO->prepare($sql_login);
$rs->bindParam(':EMAIL', $email . "%");
$rs->execute
while($row = $rs->fetch(PDO::FETCH_OBJ)){
echo $row->nome . "<br />";
echo $row->email . "<br />";
}
?>
Código - login_site.php
Aqui é o código que o usuário insere o e-mail:
<?php
<form method="post" action="consulta.php">
E-Mail
<br>
<input type="text" name="usuario_email" placeholder="Digite seu e-mail" />
<br><br>
<input type="submit" name="botao" value="Entrar" />
</form>
?>
Erro que estou obtendo
`**Parse error** : syntax error, unexpected 'while' (T_WHILE) in **C:\xampp\htdocs\App\consulta.php** on line **11**`
Se alguém puder me ajudar, ou se tiver um tutorial com CRUD PDO PHP, já procurei no Google porém nem um que encontrei funcionou!
Está indicando erro no while
sem ter while
?
Tem while
no consulta.php
!
Código - consulta.php
<?php
include "..\conexao.php";
$email = $_POST['usuario_email'];
$sql_login = ("SELECT nome, email FROM usuarios WHERE email = :EMAIL");
$rs = $PDO->prepare($sql_login);
$rs->bindParam(':EMAIL', $email . "%");
$rs->execute
while($row = $rs->fetch(PDO::FETCH_OBJ)){
echo $row->nome . "<br />";
echo $row->email . "<br />";
}
?>
Verdade, passou batido. Aqui:
VinyciusCS:
$rs->execute
Não vai ponto e vírgula?
1 curtida
Ah sim haha, agora estou com esse outro problema:
Fatal error: Uncaught Error: Cannot pass parameter 2 by reference in C:\xampp\htdocs\App\consulta.php:8 Stack trace: #0 {main} thrown in C:\xampp\htdocs\App\consulta.php on line 8
“Não se pode passar dois parâmetros por referência em […]”
Você está passando $email e “%” para o parâmetro de ligação :EMAIL
.
1 curtida
Consegui resolver assim, porém não me mostra o que está inserido no banco de dados.
<?php
include "..\conexao.php";
$email = $_POST['usuario_email'];
$sql_login = ("SELECT nome, email FROM usuario WHERE email = :EMAIL");
$rs = $PDO->prepare($sql_login);
$rs->bindParam(':EMAIL', $email);
$rs->execute;
while($row = $rs->fetch(PDO::FETCH_OBJ)){
echo $row->nome;
echo $row->email;
}
?>
Neste caso “nome” e “email” (existe essas colunas)!
O que você quer dizer com isso? Explique melhor…
Ele deveria mostrar o registro da coluna nome e email que existe no banco de dados
Print da página em branco
Print do banco de dados
Edit.: Percebi que ele não está entrando no while
Então a expressão $rs->fetch(PDO::FETCH_OBJ) está retornando FALSE. Aqui:
VinyciusCS:
$rs->execute;
Não é assim: $rs->execute();
conforme indica a documentação: PDO::prepare ???
1 curtida
Perfeito! Obrigado, nem lembrei de olhar a documentação