Я пытаюсь сделать проверку в моей БД с помощью доктрины, где я просто нужно сделать это заявление в SQL, как, Select * from usuarios where usuario_email = someEmail
, что неправильно в этом заявлении PHP доктрины
После нажатия на кнопку отправить от моей формы, Я создаю экземпляр класса UsuarioDao
, из сценария, который включает bootstrap.php
(из доктрины по умолчанию) и передать с параметром entityManager
. Затем я вызываю метод validacao()
, я знаю, что я не делаю правильную форму, не используя фильтры и т. Д., Я просто хочу понять, как работает доктрина. Вот моя модель доктрина
/**
* @Entity @Table(name="usuarios")
**/
class Usuario {
/** @Id @Column(type="integer") @GeneratedValue **/
public $usuario_id;
/** @Column(type="string") **/
public $usuario_nome;
/** @Column(type="string") **/
public $usuario_email;
/** @Column(type="string") **/
public $usuario_senha;
/** @Column(type="string") **/
public $usuario_status;
//getters and setters omited
}
Вот мой classDao для моей модели
use Doctrine\ORM\EntityManager;
class UsuarioDao{
/**
* @var EntityManager
*/
private $entityManager;
function __construct(EntityManager $entityManager) {
$this->entityManager = $entityManager;
}
public function validacao(){
$usuario = new Usuario();
$usuario->setUsuario_email($_POST['email']);
$usuario->setUsuario_senha($_POST['senha']);
$em = $this->entityManager;
$query = $em->createQuery('SELECT u FROM Usuario u WHERE u.usuario_email ='. $usuario->getUsuario_email());
$resultado = $query->getResult();
return $resultado;
}
}
Я получаю это неправильно:
Fatal error: Uncaught exception 'Doctrine\ORM\Query\QueryException' with message 'SELECT u FROM Usuario u WHERE u.usuario_email [email protected]' in C:\wamp\www\RicardoOfficial\vendor\doctrine\orm\lib\Doctrine\ORM\Query\QueryException.php on line 52
и это
Doctrine\ORM\Query\QueryException: [Syntax Error] line 0, col 54: Error: Expected end of string, got '@' in C:\wamp\www\RicardoOfficial\vendor\doctrine\orm\lib\Doctrine\ORM\Query\QueryException.php on line 52
проверить имя переменной '$ usuario-> setUsuario_nome ($ _ POST ['email']); $ usuario-> setUsuario_senha ($ _ POST ['senha']); 'они различны. Проблема с верблюдом. проверьте один раз –
попробуйте изменить WHERE u.usuario_email = '. $ Usuario-> getUsuario_email()); к WHERE u.usuario_email = '. $ usuario-> getUsuario_email()). "'"; - похоже, что вы не закрываете одиночные кавычки по адресу электронной почты – dbinns66
$ usuario-> setUsuario_senha ($ _ POST ['senha']) будет для установки пароля, он еще не используется, я пытаюсь просто с электронной почтой во-первых, но не получится, что я поставил под вопрос –