Lehre 2 PlainValue erwartet
Ich habe Probleme beim ausführen einer Lehre DQL-Query. Dies ist der Fehler, es gibt mich.
Doctrine\Common\Annotations\AnnotationException: [Syntax Error] Expected PlainValue,
got 'integer' at position 13 in property Base\Session::$lifetime.
Mein code sieht wie folgt aus:
$query = $em->createQuery("SELECT s FROM Base\Session s WHERE s.session = \"$id\"");
Wobei $id die aktuelle session_id. Mein Modell sieht so aus:
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;
}
InformationsquelleAutor Rene Terstegen | 2010-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hast du zwei Fehler drin:
Müssen Sie doppelte Anführungszeichen ein, Ihre Anmerkungen, d.h.
@Column(type="integer")
nicht@Column(type=integer)
. Doctrine\Common\Annotations\AnnotationException wird ausgelöst, wenn die Zuordnung falsch ist. Das hat nichts zu tun mit der Abfrage.Ihrer Abfrage verwenden sollten prepared statements, d.h.
$query = $em->createQuery("SELECT s FROM Base\Session s WHERE s.session = ?1");
$query->setParameter(1, $id);
Als einen weiteren Kommentar zu #1, single quotes nicht funktionieren, müssen doppelte Anführungszeichen
InformationsquelleAutor beberlei