2013-10-07 76 views
0

我在MySQL中有一个查询工作正常,但是当我将查询复制到我的PHP文件中时,它引发了一个语法错误:** unexpected“)为week_ending **什么是我失踪PHP脚本中的MySQL语法错误

的MySQL:

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

PHP:

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

回答

4

有你的SQL被提前终止您的要求的中间一对夫妇的单引号你只需要逃避。现状这里附近TES:

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

像这样:

DATE_FORMAT(NOW(),\'%d %b %y\'), 
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())' 
);