2015-03-31 72 views
0

我想从函数返回一个多维数组。函数PDO查询和多维数组

我想要列名作为第一级和数据作为第二级。

array[columnName][data] 

我可以var_dump()功能,并得到正确的输出,但我不能echo()输出。

<?php 

function fetch_columname($schema,$tablename) 
{ 
    try 
    { 
     $dbh = new PDO("mysql:host=host;dbname='dbname', 'user', 'pass'"); 
     $query = $dbh->prepare("SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`=:schema AND `TABLE_NAME`=:tablename"); 
     $query->bindParam(":schema", $schema); 
     $query->bindParam(":tablename", $tablename); 
     $query->execute(); 

     $result = array(); 
     while($row = $query->fetch(PDO::FETCH_ASSOC)) 
     { 
      $result[] = $row; 
     } 
     $dbh = null; 
    } 
    catch (PDOException $e) 
    { 
     print "Error!: " . $e->getMessage() . "<br/>"; 
     die(); 
    } 
    return $result; 
} 
$columname = array(); 
$columname = fetch_columname('new_site','users'); 
$count = count($columname); 

for($i=0;$i<$count;$i++) 
{ 
    echo $columname[$i]; 
} 
+2

“我希望有人能看到我做错了什么”:你不缩进你的代码。 – developerwjk 2015-03-31 21:00:23

+1

没有提到dsn字符串中明显被遗忘的双引号。我说很明显,因为只是在你的问题中查看代码着色,所有这些红色不应该在那里。你不使用一些IDE吗?听说netbeans或phpstorm? – 2015-03-31 21:00:56

+1

我编辑“错误的”,是一个错误的删除通行证和用户名我出于安全原因使用:) – hexedecimal 2015-03-31 21:08:44

回答

0

Mike'scomment

你的函数会返回一个二维数组写的,但我真的不知道为什么你想有一个二维数组考虑你只返回一个字段在您的查询。我只需将$result[] = $row更改为$result[] = $row['COLUMN_NAME']并称之为一天。