从MySQL数据库获取列信息?

时间:2014-09-11 19:39:48

标签: php mysql sql

我有一个脚本,到目前为止,它显示了表名,在它下面显示了每列的数组和每个列的信息。

<?php

include_once('include/connect.php'); 

$sql = "SHOW TABLES FROM mydb";
$result = mysql_query($sql);


while ($row = mysql_fetch_row($result)) {

echo "<b>{$row[0]}</b><br>";

$listcols = mysql_query("SHOW COLUMNS FROM {$row[0]}");

while ($rowz = mysql_fetch_assoc($listcols)) {
       print_r($rowz);echo "<br>";
    }

}


mysql_free_result($result);

?>

我想知道如何设置它以便它创建类似于&#34; CREATE TABLE tablenameresult (column1 int(2),column3 char( 20)......&#34;依此类推等等。

这是否可行,因为信息显示为数组?

2 个答案:

答案 0 :(得分:0)

如果要使用PHP脚本将所有数据导出到新站点,可以使用:

$password = "*****";    
exec('mysqldump -u your_user -h localhost -p'.$password.' test_django',  $out, $return);

var_dump($out);

你可以看到-p和$ password没有空格。

不要使用&#34; exec&#34;到公共文件

我希望这个脚本可以帮助你

答案 1 :(得分:0)

在另一个论坛上找到此代码。这完全符合我的需要。发布此处以防其他人需要帮助解决此问题。

<?php 
// show_tables.php 

$conn= mysql_connect('host','user','pass') 
    OR die('Connection error'); 
$database= 'databasename'; 
mysql_select_db($database); 
$sql1= 'SHOW TABLES FROM ' .$database; 
$res1= mysql_query($sql1) OR die('Query 1 error:<br />' .mysql_error()); 

echo '<table border=1 cellpadding=1 cellspacing=0 width="90%">'; 
while ( $row= mysql_fetch_row($res1) ) 
{ 
echo '<tr>'; 
echo '<td valign="top" align="center">' .$row[0]. '</td>'; 
echo '<td>'; 
$sql2= 'SHOW CREATE TABLE ' .$row[0]; 
$res2= mysql_query($sql2) OR die('Query 2 error:<br />' .mysql_error()); 
while ( $table_def= mysql_fetch_row($res2) ) 
{ 
    for ($i=1; $i<count($table_def); $i++) 
    { 
        echo '<pre>' .$table_def[$i]. '</pre>'; 
    } 
} 
echo '</tr>'; 
} 
echo '</table>'; 
?>