2012-10-30 39 views
0

我有一個字段數組,並在使用implode函數並將它們轉換爲字符串後,我試圖使用此字符串作爲mysql_query()函數中的列名稱,如下所示:無法處理mysql_query()函數中的字符串php

$field_array = array('course','batch','branch'); 

$fields = implode(", ",$field_array); 
$resource = mysql_query("SELECT $fields FROM some_table") or die(mysql_error()); 

但我收到以下錯誤。我在這裏做錯了什麼?

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fix_data' at line 1 

下面是我使用

function fetch_resource_db_nowhere($table_name,$field_array,$return_type,$return_type_name) { 



    if($field_array[0]=='ALL') { 
     //echo "asda"; 
     $resource = mysql_query("SELECT * FROM ".$table_name."") or die(mysql_error()); 
    } 
    else { 
     $fields = implode(",",$field_array); 
     $sql = "SELECT ".$fields." FROM ".$table_name.""; 
     echo $sql; 
     $resource = mysql_query($sql) or die(mysql_error()); 
    } 


    if($return_type == 'resource') { 
     return $resource; 
    } 

    if($return_type == 'resource_array') { 
     return mysql_fetch_assoc($resource); 
    } 

    if($return_type == 'resource_array_value') { 
     $resource_array = mysql_fetch_assoc($resource); 
     return $resource_array[$return_type_name]; 
    } 


} 

$data = fetch_resource_db_nowhere('fix_data',array('course','branch','name'),'resource',''); 
+0

什麼'echo「SELECT $ fields FROM some_table」;'yield? –

+0

'SELECT course,branch,name FROM fix_dataSELECT FROM fix_data'這是我得到的確切輸出。現在有些東西肯定是錯的。 – hsinxh

回答

3

你試圖破滅field_array稱爲數組,即使你的例子顯示了一個數組稱爲fields_array確切的代碼:

$fields_array = array('course','batch','branch'); 
$fields = implode(", ",$fields_array); 
$resource = mysql_query("SELECT $fields FROM some_table") or die(mysql_error()); 

編輯:您再次更改了您的代碼。您能否給我們提供您正在使用的確切代碼?

+0

@Rijk我剛剛更新了答案。當他實際上是一個名爲fields_array的數組時,他將一個名爲field_array的數組內爆。 –

+0

不知道誰低估了這一點,但這是正確的答案。 –

+0

刪除我的downvote。即使我認爲這不是他的問題的答案(閱讀錯誤)。 – Rijk