1

我正在查询数据库,我写的查询不起作用。我使用谷歌进行了研究,但没有取得任何进展。请帮忙!

${$name} = array();
    ${$name} = $db->query('SELECT', "
    SELECT
    SUM(IF(`date`=‘2014-01’, `value`, 0.00)) as `Jan_2014`,
    SUM(IF(`date`=‘2014-02’, `value`, 0.00)) as `Feb_2014,
    SUM(IF(`date`=‘2014-03’, `value`, 0.00)) as `Mar_2014`,
    SUM(IF(`date`=‘2014-04’, `value`, 0.00)) as `Apr_2014`,
    SUM(IF(`date`=‘2014-05’, `value`, 0.00)) as `May_2014`,
    SUM(IF(`date`=‘2014-06’, `value`, 0.00)) as `Jun_2014`
    FROM reporting.$name a
    INNER JOIN
    reporting.Locations b
    ON
    a.store_name=b.city
    $where
    ", 'array');
} catch (Exception $e) {
    echo $e->getMessage();
}

我收到一个错误,指出...

SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 '��2014-01', value, 0.00)) as Jan_2014, SUM(IF( date='2014' at line

4

3 回答 3

1

不要在一年中使用那些弯引号,而是使用反引号。

于 2014-07-23T17:12:45.913 回答
1

将引号字符从 ' 更改为 '

于 2014-07-23T17:13:49.587 回答
1

问题在于'您使用的符号。

${$name} = array();
    ${$name} = $db->query('SELECT', "
    SELECT
        SUM(IF('date'='2014-01', 'value', 0.00)) as 'Jan_2014',
        SUM(IF('date'='2014-02', 'value', 0.00)) as 'Feb_2014',
        SUM(IF('date'='2014-03', 'value', 0.00)) as 'Mar_2014',
        SUM(IF('date'='2014-04', 'value', 0.00)) as 'Apr_2014',
        SUM(IF('date'='2014-05', 'value', 0.00)) as 'May_2014',
        SUM(IF('date'='2014-06', 'value', 0.00)) as 'Jun_2014'
        FROM reporting.$name a
        INNER JOIN
        reporting.Locations b
        ON
        a.store_name=b.city
        $where
        ", 'array');
    } catch (Exception $e) {
    echo $e->getMessage();
}
于 2014-07-23T17:13:55.237 回答