我做了一个递归函数来选择DB中特定表的所有列。 但是,我的一些列中有一个带有其他表名称的注释,如下所示:
table_invoice
列: id
column: client_id ,评论: table_client
column: type_id ,评论: table_type
专栏: description
因此,如果列有注释,我需要进入表并选择其所有列,依此类推。
现在我需要帮助来停止该函数并返回包含所有列的数组。
当我进入echo
时,我可以看到所有列,但是当我返回时,我只看到第一个表的列。
$columns = getAllColumns('table_invoice', $arr);
function getAllColumns($table, $arr)
{
$sql = mysql_query("SELECT * FROM information_schema.columns WHERE TABLE_NAME = '$table'");
while($row = mysql_fetch_array($sql))
{
$arr[] = array('column_name' => $row['COLUMN_NAME'], 'table_name' => $table);
//echo $row['COLUMN_NAME']; //this works fine, show all columns
$comment = $row['COLUMN_COMMENT'];
if(!empty($comment))
{
getAllColumns($comment, $arr);
}
}
return $arr;
}
有人能帮助我吗?
谢谢!