- 注册时间
- 2010-11-11
- 最后登录
- 2025-5-27
- 阅读权限
- 200
- 积分
- 14361
- 精华
- 2
- 帖子
- 843
  

TA的每日心情 | 无聊 2025-5-27 03:37:20 |
---|
签到天数: 366 天 [LV.9]以坛为家II
我玩的应用:
  
|
PHP提供了获得MySQL数据库信息的一些函数,比如获得系统中所有的数据库名、表名等。下面将具体介绍这些函数是如何使用的。
23.3.1 获得所有的数据库要查询系统中都存在哪些数据库,可使用mysql_list_dbs()函数,其语法格式如下:
resource mysql_list_dbs ([ resource $link_identifier ] )
mysql_list_dbs()函数返回的结果集中包含了MySQL服务器中所有的数据库,示例如下:
代码23-9 光盘\codes\第23章\23.3\mysql_list_dbs.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
$db_list = mysql_list_dbs($connection);
while ($row = mysql_fetch_object($db_list)) {
echo $row->Database . "<br>";
echo "<hr>";
}
mysql_close($connection);
?>
在上面代码中,循环输出结果集时用到了mysql_fetch_object()函数,mysql_fetch_object()函数和 mysql_fetch_array()函数用法类似,不同的是 mysql_fetch_array()函数返回一个数组,而mysql_fetch_object()函数则返回一个对象。 mysql_fetch_object()函数的语法格式如下:
object mysql_fetch_object ( resource $result )
23.3.2 获得数据库内的表通过mysql_list_tables()函数可以获得数据库内所有的表的名字,该函数的语法格式如下:
resource mysql_list_tables ( string $database [, resource $link_identifier] )
在上述语法中涉及到的参数说明如下。
l database:使用的数据库的名称。
l link_identifier:mysql_connect()函数返回的连接对象。
使用mysql_list_tables()函数的示例代码如下:
代码23-10 光盘\codes\第23章\23.3\mysql_list_tables.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
$tb_list = mysql_list_tables("sunyang");
while ($row= mysql_fetch_row($tb_list)) {
echo $row[0]."<br>";
}
mysql_close($connection);
?>
通过上面代码就可将数据库内所有的数据表输出。
23.3.3 获取字段的相关信息在一个表中,每个字段都有一系列的属性,比如字段名、数据类型、长度等,PHP提供了相应的函数可以在脚本内将这些属性输出,从而来获取字段的详细 信息。
1.获取字段名获取字段名通过mysql_field_name()函数来实现,该函数的语法格式如下:
string mysql_field_name ( resource $result, int $field_offset )
mysql_field_name()函数将返回指定索引的字段的名字,它的参数的描述如下。
l result:mysql_query()函数执行后返回的结果集。
l field_offset:字段的偏移量,起始值为零。
使用mysql_field_name()函数的示例代码如下:
代码23-11 光盘\codes\第23章\23.3\mysql_field_name.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
mysql_select_db("sunyang",$connection) or die("选择数据库失败");
$query="select * from employee";
$result=mysql_query($query) or die("查询用户失败");
echo mysql_field_name($result,0); //输出第一个字段名
echo "<br>";
echo mysql_field_name($result,1); //输出第二个字段名
mysql_close($connection);
?>
在上面代码中可输出第一个字段名和第二个字段名,显示结果如图23-11所示。

图23-11 获取字段名
2.获取数据类型mysql_field_type()函数可获得字段的数据类型,该函数的语法格式如下。
string mysql_field_type ( resource $result, int $field_offset )
mysql_field_type()函数类似于函数mysql_field_name(),不过mysql_field_type()函数返回的 是字段的数据类型。它的参数的描述如下。
l result:mysql_query()函数执行后返回的结果集。
l field_offset:字段的偏移量,起始值为零。
使用mysql_field_type()函数的示例代码如下:
代码23-12 光盘\codes\第23章\23.3\mysql_field_type.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
mysql_select_db("sunyang",$connection) or die("选择数据库失败");
$query="select * from employee";
$result=mysql_query($query) or die("查询数据失败"); //执行查询
echo mysql_field_type($result,0); //第一个字段的数据类型
echo "<br>";
echo mysql_field_type($result,1); //第二个字段的数据类型
echo "<br>";
echo mysql_field_type($result,2); //第三个字段的数据类型
mysql_free_result($result);
mysql_close();
?>
上面代码执行后将把表employee中的前3个字段的数据类型输出,输出结果如图23-12所示。

图23-12 获取数据类型
3.获取字段的数目mysql_num_fields()函数可以将要查询的表内所有字段的数目统计出来,该函数的语法格式如下:
int mysql_num_fields ( resource $result )
其中参数result是mysql_query()函数执行后返回的结果集。使用mysql_num_fields()函数的示例代码如下:
代码23-13 光盘\codes\第23章\23.3\mysql_num_fields.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
mysql_select_db("sunyang",$connection) or die("选择数据库失败");
$query="select * from employee";
$result=mysql_query($query) or die("查询数据失败"); //执行查询
echo mysql_num_fields($result); //输出字段的数目
mysql_free_result($result);
mysql_close();
?>
4.获取字段的长度在设计数据库时,因每个字段所代表的数据含义不同,那么各个字段的长度也就不会完全相同。在PHP中,使用mysql_field_len()函数 可获得指定字段的长度,该函数的语法格式如下:
int mysql_field_len ( resource $result, int $field_offset )
在上述语法中涉及到的参数说明如下。
l result:mysql_query()函数执行后返回的结果集。
l field_offset:字段的偏移量,起始值为零。
使用mysql_field_len()函数的示例代码如下:
代码23-14 光盘\codes\第23章\23.3\mysql_field_len.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
mysql_select_db("sunyang",$connection) or die("选择数据库失败");
$query="select * from employee";
$result=mysql_query($query) or die("查询数据失败"); //执行查询
echo mysql_field_len($result, 0); //第一个字段的长度
echo mysql_field_len($result, 1); //第二个字段的长度
echo mysql_field_len($result, 2); //第三个字段的长度
echo mysql_field_len($result, 3); //第四个字段的长度
mysql_free_result($result);
mysql_close();
?>
上面代码的输出结果如图23-13所示。

图23-13 获取字段的长度
5.获取字段的其他属性字段除了有字段名、数据类型、长度外,还有一些其他的属性,比如是否为主键、是否为外键、是否允许为空等。要获得字段的其他属性可通过 mysql_field_flags()函数,该函数的语法格式如下:
string mysql_field_flags ( resource $result, int $field_offset )
在上述语法中涉及到的参数说明如下:
l result:mysql_query()函数执行后返回的结果集。
l field_offset:字段的偏移量,起始值为零。
使用mysql_field_flags()函数的示例代码如下:
代码23-15 光盘\codes\第23章\23.3\mysql_field_flags.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
mysql_select_db("sunyang",$connection) or die("选择数据库失败");
$query="select * from employee";
$result=mysql_query($query) or die("查询数据失败"); //执行查询
echo mysql_field_flags($result, 0); //第一个字段的属性
echo "<br>";
echo mysql_field_flags($result, 1); //第二个字段的属性
echo "<br>";
echo mysql_field_flags($result, 2); //第三个字段的属性
mysql_free_result($result);
mysql_close();
?>
输出前3个字段的其他属性的结果如图23-14所示。

图23-14 获取字段的其他属性
23.3.4 获取错误信息更多的时候,错误往往是避免不了的,但是实用和有效的检错信息却能够帮助程序员及时地发现错误信息,从而提高开发效率。PHP提供了两个函数来生成 错误信息,下面将分别介绍这两个函数。
1.mysql_error()mysql_error()函数的语法格式如下:
string mysql_error ( [resource $link_identifier] )
mysql_error()函数将返回上一个MySQL函数生成的错误信息,若无错误则返回一个空字符串。使用mysql_error()函数的示 例代码如下:
代码23-16 光盘\codes\第23章\23.3\mysql_error.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
mysql_select_db("mydb",$connection);
echo "错误信息:".mysql_error();
?>
如果系统中不存在名为“mydb”的数据库,程序将会输出如图23-15所示的信息。

图23-15 mysql_error()函数提示的错误信息
2.mysql_errno()mysql_errorno()函数的语法格式如下:
int mysql_errno ( [resource $link_identifier] )
mysql_errno()函数返回的是MySQL函数执行时生成的错误代码,若没有发生错误则返回0。使用mysql_errno()函数的示例 代码如下:
代码23-17 光盘\codes\第23章\23.3\mysql_errno.php
<?php
$connection=mysql_connect("localhost","root","root") or die("连接服务器失败");
mysql_select_db("mydb",$connection);
echo "生成的错误代码:".mysql_errno();
?>
程序执行以后将会输出的信息如图23-16所示。

图23-16 mysql_errno()函数提示的错误信息
该贴已经同步到 admin的微博 |
|