到目前为止,我有一个脚本显示表名称,并在其下方显示每列的数组以及每列的信息。
<?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);
?>
我想知道如何设置它,以便它创建类似“CREATE TABLE tablenameresult (column1 int (2), column3 char(20)...”和每个表依此类推。
由于信息显示为数组,这可能吗?
最佳答案
在另一个论坛上找到此代码。这非常适合我的需要。在此发布此内容,以防其他人需要帮助解决此问题。
<?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>';
?>
关于php - 从 MySQL 数据库获取列信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795715/