在php中从查询创建变量

时间:2014-04-24 17:42:28

标签: php variables

只是想知道如何将表中的选择创建为变量。完全不确定如何做到这一点。我知道数组很简单。 php有点新鲜。

这是我的代码:

    function get($table_name, $conn)
    {
    try
    {
        $result = $conn->query("SELECT archive, projectname, description, clientid FROM $table_name ORDER BY projectname ASC");

        return ($result->rowCount() > 0)
            ? $result // if
            : false; // else
    }

    catch(Exception $e)
    {
        return false;
    }
    }

    <?php foreach($archives as $archive): ?>
    <tr>
        <td><?php echo $archive; ?></td>
    </tr>
    <?php endforeach; ?> 

任何帮助都会很棒,

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您的数组是关联数组,那么您可以使用extract()

$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n";

// This will give you 
blue, large, sphere, medium

因此,在您的示例中,您可以使用以下内容

extract($result, EXTR_OVERWRITE);

// now you have 
//$archive
//$projectname
//$description
//$clientid

然而,使用EXTR_OVERWRITE作为PHP会导致:

  

如果发生碰撞,请覆盖现有变量。

更准确地实现目标: 假设result array有多行,并且您想填充数组

$archives = array();

foreach($result as $r){
    extract($r, EXTR_PREFIX_SAME);
    $archives[] = $archive
}

然后你可以做

foreach($archives as $a){
    echo $a
}

不使用Extract()

$archives = array(); 
foreach($result as $r){

    $archives[] = $r['archive'] // or $r[0]
}