我正在尝试将MySQL表中的数据存储到PHP数组变量中。
目前,我有这个:
$row = $db->query("SELECT * FROM settings");
$sysconfig = $row->fetch_array();
数据库方案是这样的:
property value
online 1
autoupd 1
setting 1
等
我应该如何编写上面的代码,以便我可以使用数据中的属性值,即
$sysconfig['online']
会返回“1”吗?
var_dump($sysconfig)
产生此
array(6) { [0]=> string(6) "online" ["property"]=> string(6) "online" [1]=> string(1) "1" ["propertyid"]=> string(1) "1" [2]=> string(1) "1" ["value"]=> string(1) "1" }
print_r($sysconfig)
产生此
Array ( [0] => online [property] => online [1] => 1 [propertyid] => 1 [2] => 1 [value] => 1 )
由于
答案 0 :(得分:2)
fetch_array返回关联数组和枚举数组。您可以通过添加MYSQL_ASSOC参数将其指定为仅返回assoc数组。或者您可以使用fetch_assoc方法。
UPD:对于您的方案,您只有'属性'和'值'列,因此您需要使用连接重写您的选择查询或迭代数据集,如下所示:
$sysconfig = array();
while ($line = $row->fetch_assoc())
$sysconfig[ $line['property'] ] = intval($line['value']);
//$sysconfig['online'] == 1
答案 1 :(得分:2)
你正在使用的课程是什么样的?我通常建议使用类似的东西:
$sysconfig = mysql_fetch_assoc($row);
将返回该行的数组。你的$ db类有一个方法吗?如果您执行以下操作会发生什么:
print_r($sysconfig);
您应该看到返回数组的细分,它将突出显示您可以使用哪些方法来访问其中的数据。
编辑:
替换此行:
$sysconfig = $row->fetch_array();
使用:
while($data = $row->fetch_array()){
$sysconfig[$data['property']] = $data['value'];
}
然后,您应该可以根据需要访问结果。
答案 2 :(得分:1)
$result = $db->query("SELECT * FROM settings");
while ($row = mysql_fetch_assoc($result)) {
echo $row["online"];
echo $row["autopd"];
echo $row["setting"];
// etc.
}
答案 3 :(得分:1)
$row = $db->query("SELECT * FROM settings");
while($data = $row->fetch_array())
$sysconfig[$data['property']] = $data['value'];