无法在php中处理mysql_query()函数内的字符串

时间:2012-10-30 10:53:17

标签: php mysql

我有一个字段数组,在使用implode函数并将它们转换为字符串后,我试图将此字符串用作mysql_query()函数中列的名称,如下所示:

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

1 个答案:

答案 0 :(得分: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());

编辑:您再次更改了代码。您能否告诉我们您正在使用的确切代码?