我想让所有的mysql表的col名称在php数组?
对此有疑问吗?
我想让所有的mysql表的col名称在php数组?
对此有疑问吗?
当前回答
当你想检查你的所有表结构与一些文件,然后使用这段代码。在这个查询中,我选择column_name,column_type和table_name以获取更多详细信息。我使用按列的顺序,所以我可以很容易地看到它。
SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename' order by DATA_TYPE;
如果你只想检查双类型文件,那么你可以很容易地做到这一点
SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME,DATA_TYPE
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename' AND DATA_TYPE like '%bigint%' order by DATA_TYPE;
如果你想检查哪个字段允许空类型等,那么你可以使用这个
SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME,IS_NULLABLE,DATA_TYPE
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename' and DATA_TYPE like '%bigint%' and IS_NULLABLE ='NO' order by COLUMN_TYPE;
你想检查更多,然后认为链接也帮助你。
https://dev.mysql.com/doc/refman/5.7/en/columns-table.html
其他回答
如果您使用php,请使用这个要点。
它可以获得选择字段的完整信息而没有结果,以及所有自定义字段,如:
SELECT a.name aname, b.name bname, b.*
FROM table1 a LEFT JOIN table2 b
ON a.id = b.pid;
如果上面SQL没有返回数据,还会得到字段名aname, bname, b的其他字段名
只有两行:
$query_info = mysqli_query($link, $data_source);
$fetch_fields_result = $query_info->fetch_fields();
你可以使用以下查询MYSQL:
SHOW `columns` FROM `your-table`;
下面是示例代码,它展示了如何在php中实现上述语法来列出列的名称:
$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
echo $row['Field']."<br>";
}
关于SHOW COLUMNS FROM TABLE输出的详细信息请访问:MySQL参考。
编辑:今天我学到了更好的方法。请看ircmaxell的回答。
解析SHOW COLUMNS FROM表的输出;
更多信息请点击:http://dev.mysql.com/doc/refman/5.0/en/show-columns.html
我在SQL Server中尝试过这个查询,这对我有用:
SELECT name FROM sys.columns WHERE OBJECT_ID = OBJECT_ID('table_name')
旧的PHP函数“mysql_list_fields()”已弃用。所以,现在获取字段名称的最好方法是查询“SHOW COLUMNS FROM table_name [LIKE 'name']”。这里有一个小例子:
$fields = array();
$res=mysql_query("SHOW COLUMNS FROM mytable");
while ($x = mysql_fetch_assoc($res)){
$fields[] = $x['Field'];
}
foreach ($fields as $f) { echo "<br>Field name: ".$f; }