2010-09-26 120 views
2

这是MySQL查询:从MySQL多维数组结果

SELECT `TABLE_SCHEMA` , `TABLE_NAME` , `COLUMN_NAME` 
FROM `COLUMNS` WHERE `TABLE_SCHEMA` = 'zfk' 

我怎样才能使多维数组:
1级TABLE_SCHEMA (上面的查询只是一个演示,否则真正的查询有没有where子句)。
2级TABLE_NAME
3级COLUMN_NAME

MySQL的输出:
alt text

回答

2

如何:

$query = mysql_query("SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME 
FROM COLUMNS WHERE TABLE_SCHEMA = 'zfk'"); 

$resulting_array = array(); 
while($row = mysql_fetch_array($query, MYSQL_NUM)){ 
    $resulting_array[] = $row; 
} 

print_r($resulting_array); 

这将打印出:

[0] => array([0] => zfk, [1] => zfk_clients, [2] => id 
[1] => array([0] => zfk, [1] => zfk_clients, [2] => company_name 
[2] => array([0] => zfk, [1] => zfk_clients, [2] => web_address 

等 上。

1

我测试这一点,它的工作原理:

$pdo = new PDO("mysql:dbname=information_schema", "XXXX", "XXXX"); 
$sql = "SELECT `TABLE_SCHEMA` , `TABLE_NAME` , `COLUMN_NAME` 
     FROM `COLUMNS` WHERE `TABLE_SCHEMA` = 'zfk'"; 
$stmt = $pdo->prepare($sql); 
$stmt->execute(); 
$zfk = array(); 
while ($row = $stmt->fetch()) { 
    $s = $row["TABLE_SCHEMA"]; 
    $t = $row["TABLE_NAME"]; 
    $c = $row["COLUMN_NAME"]; 
    $zfk[$s][$t][$c] = 1; 
} 
print_r($zfk); 

它输出与模式名的第一维度,表名称为第二尺寸,和列名作为第三维的三维阵列。

+0

当然,我没有一个名为'zfk'的模式,因此我使用了'test'模式。 – 2010-09-26 18:46:47