曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4124|回复: 0
打印 上一主题 下一主题

[数据库] mysql_affected_rows() -- 获取被影响的记录数

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2012-6-2 12:26:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
mysql_affected_rows() 函数适用于执行 INSERT,UPDATE,DELETE 语句,它可以返回有多少条记录收到该语句的影响。定义如下:
[Plain Text] 纯文本查看 复制代码
int mysql_affected_rows ([ resource $link_identifier ] )

其中 $link_identifier 是连接标识符(link identifier) 。

如果在执行 DELETE 语句时没有指定 WHERE 字句,那么将导致数据表内的所有记录都会被删除,此时 mysql_affected_rows() 函数返回 0,而不是实际被删除的记录数。

如果最近一次执行 SQL 命令的结果为失败,那么 mysql_affected_rows() 函数会返回 -1 。

此外,在执行 UPDATE 语句时,mysql_affected_rows() 函数返回的是实际被更新的记录数,而不是符合WHERE 字句的记录数,因为当指定的新值与旧值相同时,并不会有更新的操作。

下面是供测试所有的一个数据表的内容:

现在打算将上面的 “美食分类” 和 “美食鉴赏” 这两个分类的 ifdel 字段值改为 0 ,测试代码如下:
[PHP] 纯文本查看 复制代码
<?php
        header("Content-type: text/html;charset=utf-8");
        
        require_once("dbfuncs.php");

        $link = create_connection();

        $sql = "UPDATE `pw_topiccate` SET `ifdel` = 0 WHERE `name` REGEXP '美食.*'";

        $result = execute_sql("pw87", $sql, $link);

        echo "执行UPDATE语句时共有 " . mysql_affected_rows($link) . " 条记录受影响";

        mysql_close($link);
?>

上面的 $sql 语句里使用了正则表达式匹配了 “美食分类” 和 “美食鉴赏” 这两种情况。执行完程序后可以看到:


可以在 phpmyadmin 里验证:


程序里 require_once() 函数所包含的 dbfuncs.php 文件内容为:
[PHP] 纯文本查看 复制代码
<?php
function create_connection()
{
    $link = mysql_connect("localhost", "root", "woaiguaiguai")
        or die("Can not connect to database<br><br>" . mysql_error());

    mysql_query("SET NAMES utf8");
    return $link;
}

function execute_sql($database, $sql, $link)
{
    $db_selected = mysql_select_db($database, $link)
        or die("Select database failed<br><br>" . mysql_error($link));

    $result = mysql_query($sql, $link);

    return $result;
}
?>

上面使用 mysql_query("SET NAMES utf8"); 函数,它用来指定查询所要使用的字符集名称为 utf8,这样做是为了防止出现乱码。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-7-9 02:15 , Processed in 0.104133 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表