2012-08-02 49 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 
);