学说 2 PlainValue 预期

Doctrine 2 PlainValue expected(学说 2 PlainValue 预期)
本文介绍了学说 2 PlainValue 预期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在执行 Doctrine DQL 查询时遇到问题.这是它给我的错误.

I'm having trouble executing a Doctrine DQL Query. This is the error it gives me.

DoctrineCommonAnnotationsAnnotationException: [Syntax Error] Expected PlainValue, 
got 'integer' at position 13 in property BaseSession::$lifetime.

我的代码如下所示:

$query = $em->createQuery("SELECT s FROM BaseSession s WHERE s.session = "$id"");

其中 $id 是当前 session_id.我的模型看起来像:

Where $id is the current session_id. My Model looks like:

namespace Base;

/** @Entity @Table(name="session") */
class Session extends Skeleton {
/**
 * @Id @Column(type="integer")
 * @GeneratedValue(strategy="AUTO")
 */
protected $id;

/** @Column(length=32) */
protected $session;

/** @Column(type=integer) */
protected $lifetime;

/** @Column(type=integer) */
protected $modified;

/** @Column(type="text") */ 
protected $data;
}

推荐答案

你有两个错误:

  1. 你必须双引号你的注释,即 @Column(type="integer") 而不是 @Column(type=integer).当您的映射错误时,会抛出 DoctrineCommonAnnotationsAnnotationException.这与查询无关.

  1. You have to double quote your annotations, i.e. @Column(type="integer") not @Column(type=integer). DoctrineCommonAnnotationsAnnotationException is thrown when your mapping is wrong. This has nothing to do with the query.

您的查询应该使用准备好的语句,即

Your query should use prepared statements, i.e.

$query = $em->createQuery("SELECT s FROM BaseSession s WHERE s.session = ?1");$query->setParameter(1, $id);

这篇关于学说 2 PlainValue 预期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)