这个说法有什么问题 php 学说
what is wrong in this statement php doctrine
我正在尝试使用学说在我的数据库中进行验证,我只需要在 SQL 中进行此声明,例如 Select * from usuarios where usuario_email = someEmail
单击表单中的提交按钮后,
我从包含 bootstrap.php
的脚本实例化 class UsuarioDao
(来自学说默认值)
并传递参数 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
}
这是我的 class我的模型的 Dao
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
=ricardo@gmail.com' 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
您忘记了将值括起来的引号。
$query = $em->createQuery('SELECT u FROM Usuario u WHERE u.usuario_email ="'. $usuario->getUsuario_email(). '"');
如果您对 SQL 语句有疑问,最好的办法是复制您获得的查询并将其粘贴到您的 SQL 编辑器中,通常情况下您会很快发现错误。
我正在尝试使用学说在我的数据库中进行验证,我只需要在 SQL 中进行此声明,例如 Select * from usuarios where usuario_email = someEmail
单击表单中的提交按钮后,
我从包含 bootstrap.php
的脚本实例化 class UsuarioDao
(来自学说默认值)
并传递参数 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
}
这是我的 class我的模型的 Dao
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 =ricardo@gmail.com' 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
您忘记了将值括起来的引号。
$query = $em->createQuery('SELECT u FROM Usuario u WHERE u.usuario_email ="'. $usuario->getUsuario_email(). '"');
如果您对 SQL 语句有疑问,最好的办法是复制您获得的查询并将其粘贴到您的 SQL 编辑器中,通常情况下您会很快发现错误。