0

我正在尝试将我的 mysql 查询存储在这样的数组中:

$arr = array ( "field1"=>"value" , "field2"=>"value" , "field3"=>"value" , ... );

我已经尝试过了,但不像我需要的那样工作:

$row_selectProduct = array();
$sResult = $db->query( 'SELECT * FROM tbl' )    

while ( $aRow = $sResult->fetch_assoc() )
{
        $sInfo = $sResult->fetch_field();
        // General output
        $row_selectProduct[ $sInfo->name ] = $aRow;
}

$sResult->close();

谢谢帮助

编辑: 对不起,误解......我想用数据库中的字段名称来命名键。我尝试重现这个:

$result = array();

while ($row_selectProduct = mysql_fetch_assoc($selectProduct));
{

    $row_array= array();

$row_array['field_name1_In_DB'] = $row_selectProduct['field_name1_In_DB'];
$row_array['field_name2_In_DB'] = $row_selectProduct['field_name2_In_DB'];
$row_array['field_name3_In_DB'] = $row_selectProduct['field_name3_In_DB'];
$row_array['field_name4_In_DB'] = $row_selectProduct['field_name4_In_DB'];
$row_array['field_name5_In_DB'] = $row_selectProduct['field_name5_In_DB'];
...

array_push($result,$row_array);

};
4

2 回答 2

1

使用PDO 连接函数,很简单——

foreach($db->query('SELECT field_name1,field_name2 FROM table') as $row) {
    echo $row['field_name1'].' '.$row['field_name2']; //etc...
}

如果您想要更多,这里有一个很好的 PHP 中 PDO 教程。

于 2013-05-28T01:29:46.970 回答
0
while ( $aRow = $sResult->fetch_assoc() )
{
        foreach($aRow as $fieldname => $fieldvalue) {
             $row_selectProduct[$fieldname] = $fieldvalue;   
        }

}

但是你会用每条记录覆盖你的 $row_selectedProduct 并且最后的 var 只会存储最后一条记录

如果您想将所有结果放在一个数组中,您应该:

$results = array();
while ( $aRow = $sResult->fetch_assoc() )
{
        $results[] = $aRow;

}

如果您知道只有一个结果,您只需要:

$result = $sResult->fetch_assoc();
于 2013-05-23T16:16:41.533 回答