2012-02-23 58 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); 
相关问题