从表中的数据创建PHP变量

时间:2013-07-26 19:42:32

标签: php mysql

我有一个名为global_settings的表,其中包含2列(field, value)

我需要一种方法来使每一行成为一个变量

所以例如:

我需要field = titlevalue = hello

$title = 'hello';

我试过这样做:

$global_sql="SELECT * from global_settings ";
$global_rs=mysql_query($global_sql,$conn) or die(mysql_error());
while($global_result=mysql_fetch_array($global_rs))
{
    $global_sql2="SELECT * from global_settings where field =  '".$global_result["field"]."' ";
    $global_rs2=mysql_query($global_sql2,$conn) or die(mysql_error());
    $global_result2=mysql_fetch_array($global_rs2);

    $global_result2["field"] = $global_result2["value"];
}

但这没用 - 任何想法?

2 个答案:

答案 0 :(得分:4)

我强烈建议您不要从数据库中自动创建变量。您将使用可能无用的变量乱丢脚本的命名空间,并且可能会覆盖您想要保持独立的其他变量。按原样执行 - 将设置存储在数组中。

另外,除非我完全误读你的代码,否则绝对没有理由进行子查询。一个简单的:

$settings = array();
$sql = "SELECT field, value FROM settings"
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
   $settings[$row['field']] = $row['value'];
}

只需抓取所有设置即可。

答案 1 :(得分:0)

此行不会创建以field的值命名的变量。

$global_result2["field"] = $global_result2["value"];

您可以创建一个数组变量,例如:

$array_of_results[ $global_result2["field"] ] = $global_result2["value"];

这样您将拥有以下数组:

[ 'field' => 'value' ]