mysql
2012-02-15 43 views 0 likes 
0

表名选择我有简单的查询:使用SQL查询

$table_name = 'v_c_holi_2012'; 

$STH_h3 = $DBH_R->query("SELECT DATE(date_time) AS day_h 

          FROM `$table_name` 
        "); 

,它是工作确定。 但我必须这样做的查询与表名,当我试试这个:

$table_name = 'v_c_holi_2012'; 

$STH_h3 = $DBH_R->query("SELECT `$table_name`.DATE(date_time) AS day_h 

          FROM `$table_name` 
        "); 

$table_name = 'v_c_holi_2012'; 

$STH_h3 = $DBH_R->query("SELECT v_c_holi_2012.DATE(date_time) AS day_h 

          FROM `$table_name` 
        "); 

这是行不通的(致命错误:调用一个成员函数FETCH_ASSOC()在非-目的)。

我做错了什么?

回答

2

date函数不应该有table前缀,因为它是一个系统函数。 相反,您需要将表别名放在字段date($table_name.date_time)之前。

顺便说一句,如果您只从一个表中选择,则不需要。

+0

thnks,我必须从2代表做,thnks。就我本人而言,我只是在想我在想...... – Andrew 2012-02-15 13:59:48

0

我相信$table_name.DATE(date_time)应该DATE($table_name.date_time)

0

你应该表名适用于在该表(即字段名),而不是DATE功能(其中有没有你的表做)的东西。

$table_name = 'v_c_holi_2012'; 

$STH_h3 = $DBH_R->query(
    "SELECT DATE(`$table_name`.`date_time`) AS `day_h` 
    FROM `$table_name`" 
); 
相关问题