上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.6 mysql_affected_rows函数:获得前一次MySQL操作所影响的记录行数
【功能说明】
该函数将获得前一次执行SQL语句所影响到的记录行数。可能执行的操作是INSERT、DELETE、SELECT和UPDATE等。函数执行成功返回影响到的记录行数的数目,如果上一次查询是失败的,函数将返回-1。
注:如果在执行SQL语句DELETE操作时,没有指定它的执行条件,则将指定数据表中的数据全部删除,这种情况下该函数返回值在PHP4.1.2版之前都为0。当使用UPDATE语句操作时,只有真正被修改的数据记录,才会被返回。在执行SELECT语句时,还可以使用函数mysql_num_rows()来获得执行影响的记录行数。
【函数语法】
int mysql_affected_rows([resource link_identifier])
其中,参数link_identifier是成功连接MySQL服务器的连接标识符,如果没有设置该参数的值,函数会使用最后一次打开的连接,如果没有找到可用的连接,该函数会无参数地自动调用函数mysql_connect()来创建一个新的连接,如果创建失败,最终没有找到可用的连接,则系统会发出E_WARNING级别的警告信息。该函数的返回值为数值型。
【示例程序】下面使用本例函数获得执行SQL语句后,受到影响的数据记录的数目。代码如下:
<?php //打开一个非持久的MySQL服务器的连接 $link = mysql_connect("localhost", "root", "123456")or die("connection error: ".mysql_error()); mysql_select_db("project",$link); //通过打开的连接选择数据库 $sql = "select * from language where id < 5"; //书写SQL语句,查询数据表中的字段 $result = mysql_query($sql,$link); //执行SQL语句 $sqlresult = mysql_affected_rows($link); //获得执行SQL语句受到影响的记录行数 echo $sqlresult; //输出返回的结果 mysql_close($link); //关闭打开的连接 ?>
以上代码的运行结果如图1.10所示。
图1.10 运行结果
上述代码中,成功连接本地的MySQL服务器后,使用代码语句"select * from language where id < 5";指定查询数据的条件是id<5的数据。在使用mysql_affected_rows($link);操作后得到的执行SQL语句受影响的记录函数是4,说明有4条数据被执行了查询操作。