首页 > 编程地带 > PHP-获取数据库信息

PHP-获取数据库信息

2007年10月30日 发表评论 阅读评论

一、获取数据库基本信息
    mysql_list*()系列包含4个函数,用于获取数据库、数据表、属性的名字信息。
    原型如下:
    

<br />    int mysql_list_dbs(int &#91;link_identitier&#93;);<br />    int mysql_list_tables(string database_name,int &#91;link_identitier&#93;);<br />    int mysql_list_fields(string database_name,string table_name,int&#91;link_identitier&#93;);<br />    string mysql_tablename(int result,int i)<br />

    
    前三个函数分别分获取信息,但返回值仅仅是一个结果标识。只有把这个结果标识传递给最后一个函数mysql_tablename()的result参数后,才能获取具体的数据。
    
    示例:
   [codes=php]
        //连接数据库
    $connection=mysql_connect(“localhost”,”username”,”password”);
    
    //获取数据库列表
    $result_db=mysql_list_dbs($connection);
    for($i=0;$i    {
        $db_name=mysql_tablename($result_db,$i);
        echo “{“.$db_name.”}
“;
        
        //获取当前数据库中的数据列表
        $result_table=mysql_list_tables($db_name,$connection);
        for($j=0;$j        {
            $table_name=mysql_tablename($result_table,$j);
            echo “&nbsp&nbsp&nbsp&nbsp[“.$table_name.”]
“;
            
            //获取当前数据表中的属性列表
            $result_field=mysql_list_fields($db_name,$result_table,$connection);
            for ($k=0;$k            {
                $field_name=mysql_field_name($result_field,$k);
                echo “&nbsp&nbsp&nbsp&nbsp”.$field_name.”|”;
            }
            echo “
“;
        }
    }
    ?>[/codes]
    

二、获取数据表属性信息
    上面提到了mysql_field_name()函数,来获取数据表中的属性信息。mysql_field_*()是一个系列,包括属性名、最大长度、属性类型等。
    原型如下:
    

<br />    int mysql_field_name( int result,int field_index);<br />    int mysql_field_table( int result,int field_offset);<br />    int mysql_field_type( int result,int field_offset);<br />    int mysql_field_flags( int result,int field_offset);<br />    int mysql_field_len( int result,int field_offset);<br />

    上面函数的共同参数result,是由mysql_query,mysql_db_query(),mysql_field_*()等查询函数返回的结果标识。
    
    示例:
    
    [codes=php]
            $connection=mysql_connect(“localhost”,”username”,”password”);
        mysql_select_db(“books”);
        $query=”select * from computers”;
        $result=mysql_query($query);
        echo “表”.mysql_field_table($result,0).”含如下属性:
“;
        for ($i=0;$i        {
            //获取字段名
            $name=mysql_field_name($result,$i);
            //获取字段类型
            $type=mysql_field_type($result,$i);
            //获取字段长度
            $len=mysql_field_len($result,$i);
            //获取字段描述
            $flags=mysql_field_flags($result,$i);
            //输出结果
            echo “[“.$name.”]:”.$type.”(“.$len.”),”.$flags.”
“;
        }
     ?>
[/codes]
三、获取查询结果数目
    上面在for中用到了mhsql_num*()函数,用于获取查询结果的数目信息,包括获取行数和列数。
    

<br />    int mysql_num_rows(int result);<br />    int mysql_num_fields(int result);<br />    int mysql_affected_rows(int&#91;link_identifier&#93;); //该函数用来获取上一次对数据库操作所影响的行数。如insert,update,delete等操作。<br />

    
    示例见上面。
    
    

转载请注明:woyigui's blog [http://www.woyigui.cn/]
本文标题:PHP-获取数据库信息
本文地址:http://www.woyigui.cn/2007/10/30/php%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BF%A1%E6%81%AF/

分类: 编程地带 标签: ,
  1. 高冰华
    2007年11月1日07:41 | #1

    zanzan
    我真的挺佩服你的 王会朋,你做的网站好啊,
    我会常常进你的  网站的pig

    [回复]

    woyigui 回复:

    呵呵,高看我了!

    [回复]

  2. 短笛
    2009年3月19日06:35 | #2

    请问高手如果我想获得在SQL SERVER上有哪些数据库该怎么写呢?

    [回复]

    woyigui 回复:

    必须定义sql server的链接字串,但是php一般不会和sql server配合使用的。

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*