【发布时间】:2010-10-02 21:05:44
【问题描述】:
我需要在 PHP 中运行什么查询来获取数据库中给定表的结构?我需要运行什么查询来获取所有表的列表?
【问题讨论】:
我需要在 PHP 中运行什么查询来获取数据库中给定表的结构?我需要运行什么查询来获取所有表的列表?
【问题讨论】:
要获取表的列列表,请使用 DESCRIBE SQL 语句。语法如下:
DESCRIBE TableName
要获取数据库中的表列表,请使用以下 SQL 语句:
SHOW TABLES
【讨论】:
$q = mysql_query('DESCRIBE tablename');
while($row = mysql_fetch_array($q)) {
echo "{$row['Field']} - {$row['Type']}\n";
}
在http://www.electrictoolbox.com/mysql-table-structure-describe/找到它
【讨论】:
要获得 CREATE 语法,请使用
SHOW CREATE TABLE table_name;
还可以查看 information_schema 数据库。关于您的数据库、表、索引等的大量非常有用的信息。
见:How to find all the tables in MySQL with specific column names in them?
【讨论】:
获取您可以使用的字段的 cmets:
SHOW FULL COLUMNS FROM table_name;
注意关键字 FULL,这就是 MySQL 在响应中包含权限和 cmets 信息的原因。
【讨论】:
用 MYSQLI 更新:
连接数据库
function conectadb($banco)
{
$endereco = "localhost";
$usuario = "root";
$senha = "";
try
{
$con = new mysqli($endereco, $usuario, $senha, $banco);
$con->set_charset("utf8"); // acentuação
return $con;
}
catch (Exception $e)
{
echo "<h1>Falha</h1><br/>";
echo $e->getMessage();
die();
}
}
显示列表:
function show_table($tabela)
{
$conexao=conectadb('venda');
$sql = "DESCRIBE $tabela";
$result = $conexao->query($sql);
while ($coluna = $result->fetch_assoc())
{
echo "<p>".$coluna['Field']." - ";
echo $coluna['Type']."</p>";
}
}
【讨论】:
$result= mysqli_query($conn, "DESCRIBE your_table");
while($table = mysqli_fetch_array($result))
{
echo($table[0]." ".$table[1]." ". $table[2]." ". $table[3]." ". $table[4]);
}
【讨论】: