本文最后更新于 6358 天前,其中的信息可能已经有所发展或是发生改变。
工作时需要取得mysql中一个表的字段是否存在
于是就使用Describe命令来判断
如果大家有别的更好的方式的话
请告诉我哦
mysql_connect('localhost', 'root', 'root');
mysql_select_db('demo');
$test = mysql_query('Describe cdb_posts first');
$test = mysql_fetch_array($test);
$test[0]返回的是该字段的名称,比如我要查询first字段,返回的就是first
如果此字段不存在返回的就是NULL,通过这样可以判断一个字段是否存在
附加资料:
describe命令
一、describe命令用于查看特定表的详细设计信息,例如为了查看guestbook表的设计信息,可用:
describe guestbook二、可通过"show comnus"来查看数据库中表的列名,有两种使用方式:
show columns form 表名 from 数据库名
或者:
show columns from 数据库名.表名三、用describe命令查询具体列的信息
describe guestbook id
就是查询guestbook中id字段的列信息{DESCRIBE | DESC} tbl_name [col_name | wild]
DESCRIBE 是 SHOW COLUMNS FROM 的缩写。DESCRIBE 提供有关一个表的列信息。col_name 可以是一个列名或是一个包含 SQL 通配符字符 “%” 和 “_” 的字符串。没有必要用引号包围字符串。如果列类型不同于你所期望的基于一个 CREATE TABLE 语句建立的列,注意 MySQL 有时会更改列类型。这个语句是提供给与 Oracle 兼容的。
在代码里面怎么实现呢?我用的是c。
用C也是一样啊,执行SQL语句获得结果集。
用出错信息也可以
mysql_query(“select first from cdb_posts where 1=0”);
然后看 mysql_errno() 出错就表示不存在,不出错就表示存在
当然,用 Desc cdb_posts first 应该是最好的办法了
mysql_query(“select * from cdb_posts limit 1”);
$test = mysql_fetch_array($test);判断是否var_dump(isset(test[‘first’]));如为false则表示该字段不存在