我的MySQL数据库表看起来像
varname | lang1
var1 sample1
var2 sample2
我想在此表中创建名为$data
的数组,其中$data['var1']
将为sample1
。
我知道功能可行。但它将是服务器的额外负载:对于每个调用函数将查询db表。有没有办法一次性获得所有?
更新 现在,我的代码看起来像那样
<?php
$pgdata=$db->query("SELECT name, $lang AS expression FROM lang WHERE class='calc'") or die($db->error);
$calc = array();
while ($row = $pgdata->fetch_object()) $calc[$row->name] = $row->expression;
?>
答案 0 :(得分:1)
<强>固定强>
// Get all records from the database
if (!$result = mysql_query("SELECT * FROM `table` ORDER BY `varname`"))
exit("Something went wrong with the query...");
// Put records into array in the right format
$data = array();
while ($row = mysql_fetch_assoc($result)) $data[$row['varname']] = $row['lang1'];
print_r($data);
答案 1 :(得分:0)
这就是fetch_assoc()
所做的:mysqli version。
答案 2 :(得分:0)
如果你想要一个关联数组,你需要将结果作为关联来获取,例如:
mysql_fetch_assoc()
http://es.php.net/manual/en/function.mysql-fetch-assoc.php
如果使用mysqli:
mysqli_fetch_assoc()
http://es.php.net/manual/en/mysqli-result.fetch-assoc.php
如果使用PDO:
pdo::fetch(PDO::FETCH_ASSOC);
答案 3 :(得分:-1)
只需查询表格并使用mysqli_fetch_array()
或类似功能获取结果。查询只会执行一次,因此对数据库服务器来说没有“额外负载”。