我想让所有的mysql表的col名称在php数组?
对此有疑问吗?
我想让所有的mysql表的col名称在php数组?
对此有疑问吗?
当前回答
如果您使用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();
其他回答
最好的方法是使用INFORMATION_SCHEMA元数据虚拟数据库。特别是INFORMATION_SCHEMA。列的表…
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename'
AND `TABLE_NAME`='yourtablename';
它非常强大,可以给你大量的信息,而不需要解析文本(比如列类型,列是否为空,最大列大小,字符集,等等)…
哦,它是标准SQL(而SHOW…是一个MySQL特定的扩展)…
有关SHOW…使用INFORMATION_SCHEMA表,查看MySQL文档中关于INFORMATION_SCHEMA的一般内容…
我在SQL Server中尝试过这个查询,这对我有用:
SELECT name FROM sys.columns WHERE OBJECT_ID = OBJECT_ID('table_name')
当你想检查你的所有表结构与一些文件,然后使用这段代码。在这个查询中,我选择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
使用mysql_fetch_field()查看所有列数据。参见手册。
$query = 'select * from myfield';
$result = mysql_query($query);
$i = 0;
while ($i < mysql_num_fields($result))
{
$fld = mysql_fetch_field($result, $i);
$myarray[]=$fld->name;
$i = $i + 1;
}
“警告 这个扩展在PHP 5.5.0已经弃用了,将来也会被移除。”
试试我个人使用的这个方法:
SHOW COLUMNS FROM $table where field REGEXP 'stock_id|drug_name'