0

我在 MySQL 中有一个可以正常工作的查询,但是当我将查询复制到我的 PHP 文件中时,它向我抛出了一个语法错误:** 意外的“)作为week_ending** 我错过了什么?

MySQL:

'SELECT COUNT(*) as count, region, DATE_FORMAT(NOW(),'%d %b %y') as week_endingFROM stores.stats WHERE date> DATE_ADD(DATE(NOW()), INTERVAL -1 WEEK) AND date< DATE(NOW ()) 分组依据region, 日期(NOW())';

PHP:

$stmt = DB::query(Database::SELECT, 'SELECT COUNT(*) as count, region, DATE_FORMAT(NOW(),'%d %b %y'), as week_endingFROM stores.stats WHERE date> DATE_ADD(DATE(NOW ()), 间隔 -1 周) AND date< DATE(NOW()) 分组region, DATE(NOW())';

4

2 回答 2

4

SQL 中间有几个单引号会过早终止您的请求。您只需要在此处转义附近的引号即可:

DATE_FORMAT(NOW(),'%d %b %y'),

像这样:

DATE_FORMAT(NOW(),\'%d %b %y\'),
于 2013-10-07T16:36:05.017 回答
2

除了不转义包含的引号之外,您也没有关闭方法调用。

$stmt = DB::query(
    Database::SELECT,
    'SELECT COUNT(*) as count,region, DATE_FORMAT(NOW(),\'%d %b %y\'), as week_ending FROM stores.stats WHERE date > DATE_ADD(DATE(NOW()), INTERVAL -1 WEEK) AND date < DATE(NOW()) GROUP BY region, DATE(NOW())'
);
于 2013-10-07T16:38:22.503 回答