2012-08-02 83 views
0

我一直在研究应该返回MySQL查询行的OOP方法。我必须在格式的数据阵列:返回数组中的MySQL行

$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); 

希望有人有链接。

+3

应停止使用'mysql_ *'功能。他们正在被弃用。请使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不确定使用哪一个,[阅读这篇文章](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)。 – Matt 2012-08-02 20:51:37

+2

请不要使用'mysql_ *'函数来编写新的代码。他们不再维护,社区已经开始[弃用程序](http://goo.gl/KJveJ)。请参阅* [红盒子](http://goo.gl/GPmFd)*?相反,您应该了解[准备好的语句](http://goo.gl/vn8zQ)并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能决定哪些,[这篇文章](http://goo.gl/3gqF9)会帮助你。如果你选择PDO,[这里是很好的教程](http://goo.gl/vFWnC)。 – 2012-08-02 20:53:22

+1

什么废话限制? mysql_fetch_array返回数字+字符串键控数组。 mysql_fetch_assoc只有字符串,而mysql_fetch_row只能是数字。他们只返回一行。您需要在循环中获取行。阅读文档会告诉你这一点。 – 2012-08-02 21:00:43

回答

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 
);