我一直在研究一个应该返回MySQL查询行的OOP方法。我必须使用以下格式的数据数组:
$rows = array('row'=> rownum, 'fld1'=> fldval .... 'fldn' => fldval);
我遇到的是两个问题:
返回
$rows = array('0'=>fldval, 'fld1'=> fldval .... 'n'=> fldval, 'fldn' => fldval);
或单行
$rows = array('fld1'=> fldval .... 'fldn' => fldval);
有点沮丧,因为我尝试过的每个PHP mysql函数都有一些愚蠢的废话,并且不会直接进行。
我认为某个地方有一个很好的例子,可以让我超越垃圾限制,但还没有找到任何有用的东西!
我尝试了以下所有方法:
$row = mysql_result($db_res,$n);
$row = mysql_fetch_array($db_res);
$row = mysql_fetch_assoc($db_res);
$row = mysql_fetch_object($db_res);
$row = mysql_fetch_row($db_res);
没有成功!为了摆脱伪造的“数字”数组条目。我写道:
foreach ($row as $k => $v)
if (is_numeric($k)) { continue; }
$result[$k] = $v;
} // end foreach $row
$row = array_push($row, 'row'=>$rownum, $result);
希望有人有链接。
答案 0 :(得分:2)
$list = array();
$query = "SELECT value FROM table";
$resource = mysql_query($query);
while($row = mysql_fetch_assoc($resource))
{
$list['fld' . (1 + count($list))] = $row['value'];
}
$list = array('row' => count($list)) + $list;
如果表有3行,上面的代码将为您提供如下数组:
array(
'row' => 3,
'fld1' => 12,
'fld2' => 34,
'fld3' => 56
);