本文介绍了Symfony查询错误:预期文字,得到“""的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下查询:

$query = $em->createQueryBuilder()
            ->select('u.id, u.username, u.username_canonical, u.email, u.email_canonical, u.last_login, u.name, u.type, u.phone, u.site, u.agency, u.subtype, u.info, u.created_date, u.vip')
            ->from('ContrateAdminBundle:Fosuser', 'u')
            ->where('u.created_date BETWEEN "'.$fromdateaccounts.'" AND "'.$todateaccounts.'" ')
            ->getQuery();

$results = $query->getResult();

在Symfony中获取用户数据,但出现以下错误:

in Symfony to fetch user data, but I got the following error:

[Syntax Error] line 0, col 223: Error: Expected Literal, got '"'
500 Internal Server Error - QueryException
1 linked Exception: QueryException »

我的查询输出是:

SELECT u.id, u.username, u.username_canonical, u.email, u.email_canonical, u.last_login, u.name, u.type, u.phone, u.site, u.agency, u.subtype, u.info, u.created_date, u.vip
FROM ContrateAdminBundle:Fosuser u
WHERE u.created_date BETWEEN "2014-08-04 13:29" AND "2014-10-30 13:29"

推荐答案

SQL中的字符串文字用单引号'表示,而不用双引号"表示,因此您必须将"替换为字符串分隔符您通过'进行查询:

String literals in SQL are denoted by single quotes ', not double quotes ", so you have to replace the " as string delimiters in your query by ':

$query = $em->createQueryBuilder()
            ->select('u.id, u.username, u.username_canonical, u.email, u.email_canonical, u.last_login, u.name, u.type, u.phone, u.site, u.agency, u.subtype, u.info, u.created_date,u.vip')
            ->from('ContrateAdminBundle:Fosuser', 'u')
            ->where('u.created_date BETWEEN \'${fromdateaccounts}\' AND \'{$todateaccounts}\'')
            ->getQuery();

这篇关于Symfony查询错误:预期文字,得到“""的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-27 02:47
查看更多