Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony查询出错:应为文本,得到'&引用';_Php_Mysql_Sql_Symfony_Select - Fatal编程技术网

Php Symfony查询出错:应为文本,得到'&引用';

Php Symfony查询出错:应为文本,得到'&引用';,php,mysql,sql,symfony,select,Php,Mysql,Sql,Symfony,Select,我有以下疑问: $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')

我有以下疑问:

$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中获取用户数据,但我得到以下错误:

[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中的字符串文字由单引号表示,而不是双引号表示,因此您必须将查询中的字符串分隔符替换为

$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();

您还可以使用Expr:

$queryBuilder = $em->createQueryBuilder();

...
->where($queryBuilder->expr()->between('u.created_date', $fromdateaccounts, $todateaccounts));

请使用参数。接受的答案可以生成SQL注入

    ->where('u.something = ?1')
    ->setParameter(1, '')

你试过用简单报价代替双报价吗?