0

我正在尝试创建一个用户定义的函数来查询我的数据库中的一个表,评估字段的数量,并将每个字段分配给一个变量。我已经能够做到这一点,但是当我实际上希望它作为代码执行时,返回的是一个仅显示为文本的字符串。

这是代码:

function query_function() { 
    $client_selected = "1";
    $name = "";
    $result = mysql_query("SELECT * FROM client_table WHERE client_id = '$client_selected'"); 
    $row = mysql_fetch_array($result);
    $num=mysql_num_fields($result);
    $i = 0;
    while ($i < $num) { 
        $name .= "$" . mysql_field_name($result, $i);
        $name .= " = $" . "row['" . mysql_field_name($result, $i) . "'];"; 
        $i++;
    } 
    return $name;
}  
4

2 回答 2

1

只需:

extract(mysql_fetch_assoc($result), EXTR_SKIP);

http://php.net/manual/en/function.extract.php

同样,您可以按照以下方式进行操作:

$name = mysql_field_name($result, $i);
$$name = $row[$name];

例如:

$row = array(
    'a' => 1,
    'b' => 2,
    'c' => 3,
);
extract($row, EXTR_SKIP);
var_dump($a, $b, $c);

$name = 'd';
$$name = 4;
var_dump($d);

http://codepad.org/yvW0G8xc

另请注意,这些mysql_*功能已弃用。您应该使用mysqlior PDO

于 2012-09-04T23:47:52.710 回答
0

我相信你正在寻找的是eval()

但是,在使用 eval 时要非常小心。仅当您 100% 确定您的查询将哪些内容拉入$name变量时才使用它。

于 2012-09-04T23:48:00.170 回答