我正在尝试学习如何从查询中打印结果,但我感到困惑。
配置表:
site_id | site_name | site_description
1 Test Testing
配置:
private $hostname = 'localhost';
private $username = 'blah';
private $password = 'blah';
private $database = 'blah';
public function __construct()
{
$this->connection = new mysqli($this->hostname,$this->username,$this->password,$this->database);
if($this->connection->connect_errno)
{
die('Error: ' . $this->connection->error);
}
}
public function query($query)
{
return $this->connection->query($query);
}
public function __destruct()
{
$this->connection->close();
}
代码#1:
public function __construct()
{
$this->db = new Config;
$si = $this->db->query('SELECT * FROM config');
while($site_if = $si->fetch_array())
{
$this->site_info[] = $site_if;
}
}
public function getSiteName()
{
echo $this->site_info['site_name'];
}
这不会打印任何内容。
代码#2:
public function __construct()
{
$this->db = new Config;
$si = $this->db->query('SELECT * FROM config');
while($site_if = $si->fetch_array())
{
$this->site_name_info = $site_if['site_name'];
}
}
public function getSiteName()
{
echo $this->site_name_info;
}
这会打印信息,但这是正确的方法吗?有没有办法用Code#1打印?
我想做的就是回复网站名称。只有一个站点名称。
答案 0 :(得分:1)
如果没有关于配置表设计的更多信息,我认为唯一的建议就是:
while($site_if = $si->fetch_array())
{
$this->site_info[$site_if["NAME_COLUMN_NAME"]] = $site_if["VALUE_COLUMN_NAME"];
}
必须使用表格设计中的列名替换 NAME_COLUMN_NAME
和VALUE_COLUMN_NAME
。
之后,您将能够通过它的名称从$this->site_info
数组中获取自定义配置参数,例如。
public function getSiteName()
{
echo $this->site_info['site_name'];
}
答案 1 :(得分:0)
在示例#1中,$this->site_info
包含一个数组数组。只需查看内容:
print_r($this->site_info);
要遍历内容,打印每行的名称:
foreach ($this->site_info as $row){
echo $row['site_name'];
}