脑动力:PHP函数速查效率手册
上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条数据被执行了查询操作。