Php 用于将所有数据库表放入数组的函数

Php 用于将所有数据库表放入数组的函数,php,mysql,Php,Mysql,我已经编写了一个函数来将数据库表打印到如下数组中 $db_array= Array( ID=>1, PARENTID =>1, TITLE => LIPSUM, TEXT =>LIPSUM ) 我的职能是: function dbToArray($table) { $allArrays =array();

我已经编写了一个函数来将数据库表打印到如下数组中

$db_array=  
 Array(
    ID=>1,
    PARENTID =>1,
    TITLE => LIPSUM,
    TEXT =>LIPSUM
    )
我的职能是:

function dbToArray($table)
                        {
                          $allArrays =array();
                          $query = mysql_query("SELECT * FROM $table");
                          $dbRow = mysql_fetch_array($query);
                            for ($i=0; $i<count($dbRow)  ; $i++)
                                {
                                   $allArrays[$i] =  $dbRow; 
                                }
                            $txt .='<pre>';
                            $txt .= print_r($allArrays);
                            $txt .= '</pre>';
                            return $txt;
                        }
函数dbToArray($table)
{
$allArrays=array();
$query=mysql_query(“从$table中选择*);
$dbRow=mysql\u fetch\u数组($query);

对于($i=0;$i它看起来可以工作,但有点违背了关系数据库的用途。为什么不序列化数据并将其写入文件?

似乎您正在尝试打印表(而不是数据库)

函数打印表($table){
$allRows=array();
$query=mysql_query(“从$table中选择*);
while($row=mysql\u fetch\u array($query)){
$AllArray[]=$row;
}
$txt='';
$txt.=print\u r($allRows,true);
$txt.='';
echo$txt;
返回$txt;
}

(编辑:修复了print\u r中缺少的第二个参数)

我不确定您的函数是否会获得数据库返回的所有行。只返回一行。因此for循环毫无意义

相反,您应该这样做,而不是for循环

顺便说一句,如果您仍然想使用for循环,您可以尝试类似的方法。
但是有什么意义呢?
while循环非常适合这种情况

$numRows=mysql\u num\u行($query);
对于($i=0;$i<$numRows;$i++){
$allArrays[$i]=mysql\u fetch\u数组($query);
}

如果
(出现错误)
则粘贴错误;没有任何错误,但输出重复21次:数组([0]=>1[ID]=>1[1]=>0[PARENTID]=>0[2]=>1[CATID]=>1[3]=>news[CATNAME]=>news[4]=>1])这可能是因为您的表包含21列。您在同一行上反复循环。mysql\u fetch\u array()只返回一行。因此,如果您想移动到其他行,应该反复调用它。嗨,Brendan;我这样做(序列化数据并将其写入文件?)。但我正在寻找一个全局函数来执行此操作。它看起来只会一遍又一遍地显示第一行。输出为:数组([0]=>Array([0]=>1[ID]=>1[1]=>0[PARENTID]=>0[2]=>1[CATID]=>1[3]=>News[CATNAME]新闻[4]=>1[BASEID]=>1[5]=>2010-03-19 01:10:51[TARIH]=>2010-03-19 01:10:51[6]=>News Head[BASLIK]=>News Head[7]=>Lorem ipsum dolor[MANSET]=>Lorem ipsum]))顺便说一句,我想要一个打印数组的函数……只需使用上面的一个参数更改for循环。然后添加第二个参数“true”来打印,就像@jwandborg所说的。
print\r($allRows);
应该是
print\r($allRows,true);
。请参阅
function printTable($table){
   $allRows = array();
   $query = mysql_query("SELECT * FROM $table");
   while($row = mysql_fetch_array($query)){
      $allArrays[] =  $row; 
   }
   $txt ='<pre>';
   $txt .= print_r($allRows, true);
   $txt .= '</pre>';

   echo $txt;

   return $txt;
}
while($row = mysql_fetch_array($query) {
  $allArrays[] = $row;
}
$numRows = mysql_num_rows($query);
for($i = 0; $i < $numRows; $i++) {
  $allArrays[$i] = mysql_fetch_array($query);
}