mysql
2012-02-15 88 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`" 
); 
相關問題