2012-02-23 59 views
0

在我的PHP代碼,我從數據庫中的數據,我把該陣列的具體數值,我可以使用什麼來代替mysql_fetch_array?

$from_db=mysql_query(" SELECT * FROM ... "); 

while ($row = mysql_fetch_array($from_db)) { 
$number_id[]=$row['number_id']; 
... 
} 

現在,我想之前的COMAND「而」加入這一行(用於其他目的) :

$from_db = mysql_fetch_array($from_db); 

我怎樣才能改變這一行:while ($row = mysql_fetch_array($from_db)) {處理數組,而不是從數據庫中的原始數據?

+0

你的問題的方式還不清楚。在這兩種情況下你都有數組都包含來自數據庫的原始數據。你能告訴你真正想要什麼嗎?爲什麼?沒有使用一些你不太明白的術語。謝謝。 – 2012-02-23 10:05:27

+0

我試着把'$ from_db'放到緩存中,但是我得到了一個錯誤,所以我需要將mysql_query轉換爲一個Array,放入緩存並在那之後。 – Lucas 2012-02-23 10:19:04

+0

你想放入緩存的是什麼?做什麼的?你真的需要任何緩存嗎?可能你需要先學習非常基本的語法? – 2012-02-23 10:21:32

回答

4

我建議你改用PDO class。 mysql_ *函數不再被推薦,並將在(遠)將來棄用。

一個例子是這樣的:

//Connect to database and whatnot 
//... 
$PDOquery=$PDO->prepare('SELECT * FROM users WHERE id=?;'); 
$PDOquery->execute(array(1)); 
$resultArray=$PDOquery->fetchAll(PDO::FETCH_ASSOC); //Results stored as associative array in ths array. 
+0

感謝您的建議,我會詳細閱讀。 – Lucas 2012-02-23 10:22:04

0

像這樣的事情很遺憾,必須:

$from_db=mysql_query(" SELECT * FROM ... "); 

$from_db = array(); 

while ($row = mysql_fetch_array($from_db)) { 
    $from_db[] = $row; 
} 

foreach($from_db as $row) { 
    $number_id[]=$row['number_id']; 
} 
0

你會更好地利用PDOMySQLi

例如,PDOStatement::fetchAll

<?php 
$sth = $dbh->prepare("SELECT name, colour FROM fruit"); 
$sth->execute(); 

/* Fetch all of the remaining rows in the result set */ 
print("Fetch all of the remaining rows in the result set:\n"); 
$result = $sth->fetchAll(); 
print_r($result); 
相關問題