循环遍历表列
问题描述:
我有一个查询应该循环遍历数据库中的所有表。它做得很好,我通过输出表名来测试它。
但是,我试图循环访问数据库中的每一列,以便我可以在另一个查询中使用它。循环遍历表列
这是我当前的代码,通过表中的循环数据库:
<?php
$host = "127.0.0.1";
$username = "username";
$password = "password";
$database = "database";
$link = new mysqli($host, $username, $password, $database);
if($link->connect_error)
{
die("Connection died: ".$link->connect_error);
}
$showtables = $link->query("SHOW TABLES;");
foreach($showtables->fetch_all() as $table)
{
printf($table[0] . "\n");
// what i'm trying to achieve:
foreach(/* ??? */ as $column)
{
printf("\t- ".$column."\n");
}
}
?>
任何人都可以借他们的手?谢谢!
答
喜欢的东西:
$host = "127.0.0.1";
$username = "username";
$password = "password";
$database = "database";
$link = new mysqli($host, $username, $password, $database);
if($link->connect_error)
{
die("Connection died: ".$link->connect_error);
}
$showtables = $link->query("DESCRIBE name_of_table;");
foreach($showtables->fetch_all() as $table)
{
printf($table[0] . "\n");
}
如果你想在你的数据库中的所有表使用SQL:
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
但是,为什么?顺便说一句,信息模式将给你所有这些,而不需要任何循环,但我仍然想知道为什么你想要它! – Strawberry
@Strawberry我创建了一个循环遍历255表数据库的脚本,并将每一列转换为LONGBLOB,然后转换为UTF8MB4,因为它当前充满了乱码。 – shavit