如何使用PHP从MySQL数据库查询此信息?

时间:2011-10-04 17:54:38

标签: php mysql

我的表设置如下:

id | config_name | CONFIG_VALUE

1 |语言|英语
2 |货币| $
3 | date_format | M d,Y
等...

我正在尝试查询数据库,以便在整个页面中根据需要使用此信息。此表中可能有100行,但我只需要在页面上使用特定的行。这就是我需要指定我正在使用哪一个的原因。例如:

$ config->语言; 会回显“英语”
$ config->货币; 会回显“$”等等。

我该如何设置?

我知道如何获取值并在while循环中反复回显相同的事情:

$systemconfig = mysql_query("SELECT config_name, config_value FROM system_config");             

    while($configs = mysql_fetch_array( $systemconfig )) {
        echo "The value of ".$configs['config_name']."is: ".$configs['config_value'];

    } // end while

...但我不想陷入那个循环,因为它循环遍历数据库中的所有配置。这就是为什么我希望能够回显我在整个页面中指定的特定配置值,如上所述,即: $ config-> language

有人可以启发我吗?

4 个答案:

答案 0 :(得分:1)

您要么获取所有内容,要么您必须事先知道您将在页面中使用哪些配置值并仅获取这些值。

否则,您将不得不制作一个自动加载对象,该对象将在访问该选项时获取/缓存每个配置值。

答案 1 :(得分:1)

这是非常直接的,你必须自己完成思考过程:

  • 使用连接和抓取配置信息的构造函数创建一个对象
  • 在需要时调用对象。

这是一个粗略的对象示例(您填写所需的代码):

<?php
class config
{
    protected $self = array();

    function __construct()  // a constructor runs on initialization of object
    {
       $q = mysql_query("SELECT config_name, config_value FROM system_config");             

        while($configs = mysql_fetch_array( $q )) {
            $this->add($configs['config_name'], $configs['config_value']);

        }
    }

    function add($key, $value){
        $this->self[$key] = $value;
    }

    function __get( $name = null ) {   // this is a getter that you call
        if(isset($this->self[$name])){ 
            return $this->self[$name];
        } 
        return false;  // this is returned if element doesn't exist
    }
}

$config = new config;
echo $config->language;
?>

答案 2 :(得分:0)

使用mysql_fetch_object

更好的方式

function getConfig($what)
{
    $qry   = "SELECT `config_name` AS `name` , `config_value` AS `value` 
            FROM `system_config` WHERE `config_name`=$what";
    $reslt = mysql_query($qry);
    return mysql_fetch_object($result);
}

$config = getConfig('language');
while($row=$config)
{
   echo $config->name;
   echo $config->value;
}

答案 3 :(得分:0)

您必须将$ config构建为key =&gt; value数组,其中键是配置名称,值是配置值。

然后,如果您坚持使用对象表示法,则可以在类构造函数中使用extract(),以使用键作为变量名称将$ config数组的值“转储”为类属性。