关于通过php获取mysql表里的字段名的方法的整理

来源:互联网 发布:linux top nic 编辑:程序博客网 时间:2024/05/24 00:05

   如果你想获取数据库表,字段等元素的信息(一个数据库里所有表的名字或者一个表的字段名字,字段类型等),而还没有很好的方法就请看下面的文章。

  可能你在百度,google上也搜索了很久,但却没能具体详细的指出其具体步骤让你未能如愿。

  通过分析网友们的方法,取众家之长之后,我觉得应该是这样的:

方法一:利用sql语句实现。

  1. 利用这个方法,首先你得细分数据库的类型,比如sql server,mysql,oracle等,对于不同的数据库,sql语句也是不一样的。可以参考:http://wenku.baidu.com/view/a12b32bc960590c69ec3760d.html,例如mysql的有desc tablename;show columns from table等。
  2. 找到相应的语句之后,我们现在就可以用sql执行语句执行它了,但还要注意到底是用php的mysql还是mysqli连接mysql数据库的,因为这两种连接类型的语句和获取数据,处理数据的php语句也不一样,要注意匹配。不能从网上照搬,自己要多分析。可以参考http://www.docin.com/p-222996612.html,看看普通mysql与mysqli的区别,及后者的使用方法。一下是我的一段代码:
  3. //连接数据库,使用的是mysqli$conn=new mysqli('localhost', 'user', 'password', 'database');//设定字符集,处理中文乱码用的,可以不用管它,我特定用的$conn->set_charset("utf8");//sql语句执行$result=$conn->query("show columns from tablename");//有四种方法获取结果的当前行数据,分别是fetch_row(),fetch_assco(),fetch_array(),fetch_object()区别分别是返回的数据的类型不同,依次分别是索引数组(即索引是数字0,1,2等),关联数组(即索引是具体的真实的键等),兼前二者,对象。返回的数据则处理数据的方法也不同。我用的是fetch_assco(),使用键值对的格式。还要注意键是区分大小写的,这也是很多网友用fetch_assoc(),却不能返回正确结果的原因。while($row = $result->fetch_assoc()) {     echo "<br>";     foreach ($row as $k=>$v)     echo $k."=>".$v."<br>";     echo "-------------------";}//你可以换成一下代码试试“键”的值是不是区分大小写。while($row = $result->fetch_assoc()) {   echo "<br>".$row['field'];   echo "<br>".$row['Field']; }

我们已经知道了利用sql语句去查看的方法。

方法二:如果你使用的是mysql面向过程的函数去连接数据库而不是利用mysqli的面向对象去连接的,则你就有以下最为方便的方法了。为什么面向对象却没有这样的方法呢?这个你看看mysqli的几个类里的方法和属性就知道了,因为类里面还没有定义这样的方法。这个还是需要高手自己添加方法的,那就厉害了。
例如:
 mysql_fetch_field()//从结果集中取得列信息并作为对象返回
 mysql_field_name() //取得结果中指定字段的字段名
 mysql_list_fields()//列出 MySQL 结果中的字段
可以在网上查到很多。

以上是自己的一点看法,希望能给大家带去帮助,望共勉。
QQ:165392826;http://www.webyzl.com