文章教程

9.2.1数据库操作函数

9/17/2020 9:37:07 PM 人评论 次浏览

9.2 PHP中其他MySQL操作函数

PHP提供的其他MySQL操作函数不一定常用,但了解这些函数的用法是有必要的。

9.2.1 数据库操作函数

PHP 提供的数据库操作函数包括:mysql_create_db()函数、mysql_list_dbs()函数和mysql_drop_db()函数。

1.mysql_create_db()函数

语法格式:bool mysql_create_db ( string database_name [, resource link_identifier] )

函数功能:新建一个MySQL数据库。mysql_create_db()函数尝试在指定的连接标识所关联的服务器上建立一个新数据库database_name。如果成功则返回 TRUE,失败则返回 FALSE。

说明:如果MySQL扩展库是基于MySQL 4.x客户端库建立的,本函数不可用。

2.mysql_list_dbs()函数

语法格式:resource mysql_list_dbs ( [resource link_identifier] )

函数功能:列出 MySQL 服务器中所有的数据库。mysql_list_dbs()函数返回一个包含了当前MySQL服务器中所有可用的数据库的结果集。

3.mysql_drop_db()函数

语法格式:bool mysql_drop_db ( string database_name [, resource link_identifier] )

函数功能:删除一个 MySQL 数据库。mysql_drop_db()函数删除指定连接标识所关联的服务器上的数据库。如果成功则返回TRUE,失败则返回FALSE。

说明:如果MySQL扩展库是基于MySQL 4.x客户端库建立的,本函数不可用。

例如,程序database_manage.php如下,该程序的运行结果如图9-5所示。

<?php

$serverLink = @mysql_connect("localhost","root","") or die("连接服务器失败!程序中断执行!");

mysql_query("set names 'gbk'");

$resultSet = mysql_list_dbs();

while($db = mysql_fetch_array($resultSet)){

echo $db[0]."<br/>";

}

mysql_free_result($resultSet);

mysql_close($serverLink);

?>

9.2.2 数据库表操作函数

PHP提供的数据库表操作函数包括mysql_list_tables()函数和mysql_tablename()函数。

1.mysql_list_tables()函数

语法格式:resource mysql_list_tables ( string database_name [, resource link_identifier] )

函数功能:列出 MySQL 数据库 database_name 中的所有表。该函数将返回一个包含了database_name数据库中所有可用数据库表的结果集。

2.mysql_tablename()函数

语法格式:string mysql_tablename ( resource result, int i )

函数功能:取得表名。该函数接受mysql_list_tables()函数的返回值以及一个整数索引作为参数并返回表名。例如,程序table.php如下,该程序的运行结果如图9-8所示。

<?php

$server_link = @mysql_connect("localhost","root","") or die("连接服务器失败!程序中断执行!");

mysql_query("set names 'gbk'");

$resultSet = @mysql_list_tables("student");

for($i = 0; $i < mysql_num_rows($resultSet); $i++){

printf ("表: %s<br/>", mysql_tablename($resultSet, $i));

}

mysql_free_result($resultSet);

mysql_close($server_link);

?>

figure_0193_0263
图9-8 数据库表操作函数

9.2.3 选择当前操作的数据库并发送SQL语句

mysql_db_query()函数

语法格式:resource mysql_db_query ( string database_name, string sql [, resource link_identifier] )函数功能:发送一条 SQL 语句。mysql_db_query()函数选择一个当前操作的数据库并向数据库服务器引擎中发送SQL语句。例如,可以将程序select.php修改为如下代码。

<?php

$serverLink = @mysql_connect("localhost","root","") or die("连接服务器失败!程序中断执行!");

mysql_query("set names 'gbk'");

$selectSQL = "select * from student";

$resultSet = @mysql_db_query("student",$selectSQL);

var_dump($resultSet);

echo "<br/>";

echo "student表的记录数为:".mysql_num_rows($resultSet);

mysql_free_result($resultSet);

mysql_close($serverLink);

?>

9.2.4 表字段操作函数

PHP 提供的数据库表字段操作函数包括 mysql_num_fields()、mysql_field_name()、mysql_field_type()、mysql_field_len()和mysql_field_flags()函数。

1.mysql_num_fields()函数

语法格式:int mysql_num_fields ( resource result )

函数功能:取得结果集result中字段的数目。

2.mysql_field_name()函数

语法格式:string mysql_field_name ( resource result, int field_index )

函数功能:取得结果集result中指定字段的字段名。

说明:mysql_field_name()函数返回指定字段索引的字段名。field_index是该字段的数字偏移量,该偏移量从0开始。

3.mysql_field_type()函数

语法格式:string mysql_field_type ( resource result, int field_offset )

函数功能:取得结果集result中指定字段的MySQL数据类型。

说明:mysql_field_type()返回指定字段的MySQL数据类型。field_offset是该字段的数字偏移量,该偏移量从0开始。

4.mysql_field_len()函数

语法格式:int mysql_field_len ( resource result, int field_offset )

函数功能:返回结果集result中指定字段的长度。

5.mysql_field_flags()函数

语法格式:string mysql_field_flags ( resource result, int field_offset )

函数功能:从结果集result中取得和指定字段关联的标志。每个标记对应一个单词,之间用一个空格分开。这些标记有:"not_null"、"primary_key"、"unique_key"、"multiple_key"、"blob"、"unsigned"、"zerofill"、"binary"、"enum"、"auto_increment"、"timestamp"等。

例如,程序field.php如下,该程序的运行结果如图9-9所示。

figure_0194_0264
图9-9 表字段操作函数

<?php

$serverLink = @mysql_connect("localhost","root","") or die("连接服务器失败!程序中断执行!");

mysql_query("set names 'gbk'");

$selectSQL = "select * from student";

$resultSet = @mysql_db_query("student",$selectSQL);

$fieldsNum = mysql_num_fields($resultSet);

echo "student表共有".$fieldsNum."个字段,各个字段属性如下:";

echo "<br/>";

echo "<table>";

echo "<tr><td>字段名</td><td>字段类型</td><td>字段长度</td><td>字段标识</td></tr>";

for($i=0;$i<$fieldsNum;$i++){

echo "<tr>";

echo "<td>".mysql_field_name($resultSet,$i)."</td>";

echo "<td>".mysql_field_type($resultSet,$i)."</td>";

echo "<td>".mysql_field_len($resultSet,$i)."</td>";

echo "<td>".mysql_field_flags($resultSet,$i)."</td>";

echo "</tr>";

}

echo "</table>";

mysql_free_result($resultSet);

mysql_close($serverLink);

?>

9.2.5 其他常用函数

1.mysql_fetch_lengths()函数

语法格式:array mysql_fetch_lengths ( resource result)

函数功能:返回结果集result中每个字段内容的长度。使用mysql_fetch_lengths()函数前通常先使用 mysql_fetch_row()函数或 mysql_fetch_array()函数取得记录集中所有字段。如果 mysql_fetch_lengths()函数成功执行,将返回一个整数键数组;如果执行失败或没有任何结果返回将返回FALSE。例如,程序fetchLengths.php如下,该程序的运行结果如图9-10所示。

<?php

$serverLink = @mysql_connect("localhost","root","") or die("连接服务器失败!程序中断执行!");

mysql_query("set names 'gbk'");

$selectSQL = "select * from student";

$resultSet = @mysql_db_query("student",$selectSQL);

var_dump(mysql_fetch_row($resultSet));

echo "<br/>";

var_dump(mysql_fetch_lengths($resultSet));

mysql_free_result($resultSet);

mysql_close($serverLink);

?>

figure_0195_0265
图9-10 mysql_fetch_lengths()函数用法

2.mysql_result()函数

语法格式:mixed mysql_result ( resource result, int row [, mixed field] )

函数功能:返回结果集 result 中一个字段的字段值。字段参数可以是字段的偏移量或者字段名,或者是“表名.字段名”。例如,程序mysql_result.php如下,该程序的运行结果如图9-11所示。

<?php

$serverLink = @mysql_connect("localhost","root","") or die("连接服务器失败!程序中断执行!");

mysql_query("set names 'gbk'");

$selectSQL = "select * from student";

$resultSet = @mysql_db_query("student",$selectSQL);

echo "<br/>";

echo mysql_result($resultSet,0,0);

echo " ";

echo mysql_result($resultSet,0,1);

echo " ";

echo mysql_result($resultSet,0,2);

echo " ";

echo mysql_result($resultSet,0,3);

mysql_free_result($resultSet);

mysql_close($serverLink);

?>

3.mysql_errno()函数

语法格式:int mysql_errno ( [resource link_identifier] )

函数功能:返回MySQL数据库服务器的错误代码,如果没有出错则返回0(零)。

说明:mysql_errno()函数仅返回最近一次MySQL函数的错误代码,因此应该尽早地调用该函数。

4.mysql_error()函数

语法格式:string mysql_error ( [resource link_identifier] )

函数功能:返回MySQL数据库服务器产生的错误文本信息,如果没有出错则返回""(空字符串)。

说明:mysql_error()函数仅返回最近一次MySQL函数的错误文本信息,因此应该尽早地调用该函数。

例如,程序error.php如下,该程序的运行结果如图9-12所示。

<?php

$serverLink = @mysql_connect("localhost","root","") or die("连接服务器失败!程序中断执行!");

mysql_query("set names 'gbk'");

$dbLink = @mysql_select_db("unknown");

echo mysql_errno();

echo "<br/>";

echo mysql_error();

mysql_close($serverLink);

?>

figure_0196_0266
图9-11 mysql_result函数用法
figure_0196_0267
图9-12 出错处理

教程类别