我想将MySQL数据库中的所有表以及每个表中的所有记录作为单个网页输出。我可以使用SELECT函数为一个表执行此操作,但希望对快速更改的数据库执行此操作。随着时间的推移,新表将被添加和删除,所以我想要一个通用函数,它将显示数据库中所有表的所有数据。这可能吗?我可以在MySQL数据库中显示所有表格和数据吗?
回答
使用此查询中选择的数据库来获取所有表名
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
使用的foreach循环使用第二循环双方使用PHP的组合来获得结构细节
DESCRIBE ;
or
SELECT column_name,column_type,is_nullable,column_key,col umn_default,extra FROM information_schema.COLUMNS WHERE
table_name=''
,你可以得到所有需要的信息
SELECT *从INFORMATION_SCHEMA。表格? – Sqoo
另一种方法,列出的东西我n更具有词汇风格。就我个人而言,我会将所有内容转储到一个数组中并迭代它,但我知道有些人更喜欢直接写出来。
$dbName = 'foo';
$res = $mysqliCnx->query('show tables');
if ($res)
{
while ($row = mysqli_fetch_assoc($res))
{
$currTable = $row['Tables_in_'.$dbName];
echo '<h2>'.$currTable.'</h2><ul>';
$res2 = $mysqliCnx->query('show columns from '.$currTable);
while ($fields = mysqli_fetch_assoc($res2))
{
echo '<li>'.$row['field'].' - ('.$row['Type'].')</li>';
}
echo '</ul>';
}
}
这将列出数据库中的所有表格,并按表格名称和序号位置排序。我省略了一些您可能不需要的列,但请仔细检查列选择。
好的...你比我平常放弃的要多得多,但试试这个,看看它是不是你正在寻找的东西。
<?php
$sql = "SELECT `TABLE_SCHEMA`,`TABLE_NAME`, `COLUMN_NAME`, `ORDINAL_POSITION`,
`COLUMN_DEFAULT`, `IS_NULLABLE`, `DATA_TYPE`, `CHARACTER_MAXIMUM_LENGTH`,
`CHARACTER_SET_NAME`, `COLLATION_NAME`, `COLUMN_TYPE`, `COLUMN_KEY`
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY `TABLE_SCHEMA`,`TABLE_NAME`,`ORDINAL_POSITION` ASC;";
mysql_connect($host, $username, $password) or die();
mysql_select_db($database) or die();
$result = mysql_query($sql);
$table_top = "<table cellpadding=\"2\" border=\"1\"><tr><th>Schema</th><th>Table</th><th>Column</th><th>Position</th><th>Key</th><th>Type</th><th>Max Length</th></tr>";
$table_change_row = "<tr><th bgcolor=\"black\"></th><th>Table</th><th>Column</th><th>Position</th><th>Key</th><th>Type</th><th>Max Length</th></tr>";
$table_bottom = "</table>";
$current_schema = '';
$current_table = '';
echo $table_top;
while ($row = mysql_fetch_object($result)) {
if ($current_schema!=$row->TABLE_SCHEMA && !empty($current_schema))
{
echo $table_bottom;
echo $table_top;
}
if ($current_table!=$row->TABLE_NAME)
{
echo $table_change_row;
}
$current_schema = $row->TABLE_SCHEMA;
$current_table = $row->TABLE_NAME;
echo "
<tr>
<td>$row->TABLE_SCHEMA</td>
<td>$row->TABLE_NAME</td>
<td>$row->COLUMN_NAME</td>
<td>$row->ORDINAL_POSITION</td>
<td>$row->COLUMN_KEY</td>
<td>$row->DATA_TYPE</td>
<td>$row->CHARACTER_MAXIMUM_LENGTH</td>
</tr>";
}
echo $table_bottom;
?>
谢谢先生,我一直在寻找这个:D我想知道如何去创建循环。我了解基础知识,但仍然有点难过。 – Thatfuzzbean
@Thatfuzzbean我更新了代码,但看看http://us.php.net/manual/en/ref.mysql.php并注意mysql_list_dbs,mysql_list_tables和mysql_list_fields函数,以提供更清晰的方法。 – ixasilent
真的吗? 'mysql'功能?你知道他们是被剥夺的,对吧? – TRiG
function db_show_tables() {
$o=mysql_query("show tables");
if($o!==false) {
while($w=mysql_fetch_row($o)) $lista[]=$w[0];
return $lista;
};
return $o;
};
- 1. 在html表中显示数据库表中的所有数据
- 2. 显示mysql表中的所有数据
- 3. 显示表格中的所有数据
- 4. 在我的数据库中显示我的用户表中的所有数据
- 5. 我可以在MYSQL数据库表中插入图像吗?
- 6. 在MYSQL中显示所有数据
- 7. 如何以表格格式显示数据库数据?
- 8. 以php表格形式从mysql数据库以php的形式显示数据
- 9. 我可以在ONE数据库中使用InnoDB和MyISAM表吗?
- 10. 我可以在Rails中显示图像而不显示数据库文本吗?
- 11. 我们可以像phpAdmin那样在行和列中显示数据库吗? (数据库在DDMS)android
- 12. 在所有表中的MySQL数据库中插入数据
- 13. 将演示数据存储在数据库中可以吗?
- 14. 在MySql中显示所选数据库表的结构
- 15. 显示数据库中的所有行
- 16. 我可以从ACTIVEMQ_MSGS表中删除所有数据吗?
- 17. 以表格形式显示数据库查询数据
- 18. 我可以在MySQL数据库的列中输入公式吗?
- 19. 我可以在mysql数据库中获得最高的值吗?
- 20. 我可以将JavaScript对象存储在mySQL数据库中吗?
- 21. 使用主键在jsp中显示来自mysql数据库的所有数据
- 22. 我可以在TransactionScope中从数据库检索数据吗?
- 23. 我可以在MySQL数据库字段表达式中运行MySQL查询吗?
- 24. 我可以在我的数据库中添加其他表吗?
- 25. 显示MySql数据的表格,用户可以编辑
- 26. SVN可以同步MySQL数据库吗?
- 27. Mysql - 在所有数据库中查找表格
- 28. 我可以从foursquare获取所有场馆数据库吗?
- 29. 可以在MySQL数据库中有很多空值吗?
- 30. 在mysql中,显示数据库;命令没有列出我的所有数据库
可以查询的信息架构tabels让这一切http://dev.mysql.com/doc/refman/5.0/en/information-schema.html – 2011-08-10 03:20:02