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);
?>
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所示。
<?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);
?>
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);
?>
共有条评论 网友评论