1、MySQL 更新或插入后获取受影响行数,用下面函数可以获取:
SELECT ROW_COUNT()
2、Mysql的select语句得到的行数:
select count(1) from index_scoreinfo
mysql_affected_rows()返回最近一次与
连接句柄
关联的
INSERT,UPDATE
或
DELETE
查询所影响的记录行数.FOUND_ROWS()
:
select
ROW_COUNT()
:
update
delete
insert.
FOUND_ROWS()
:
select
ROW_COUNT()
:
update
delete
insert.
MySQL的函数中,SELECT是另外一个单独的函数
FOUND_ROWS()
,
UPDATE等是
ROW_COUNT()
如下案例:
mysql>
INSERT
INTO
t
VALUES(1),(2),(3)
Query
OK,
3
rows
affected
(0.00
sec)
Records:
3
Duplicates:
0
Warnings:
0
mysql>
SELECT
ROW_COUNT()
+-------------+
|
ROW_COUNT()
|
+-------------+
|
3
|
+-------------+
1
row
in
set
(0.00
sec)
mysql_affected_rows
(PHP
3,
PHP
4
,
PHP
5)
mysql_affected_rows
--
取得前一次
MySQL
*** 作所影响的记录行数说明
int
mysql_affected_rows
(
[resource
link_identifier])
mysql_affected_rows()
返回最近一次与
连接句柄
关联的
INSERT,UPDATE
或
DELETE
查询所影响的记录行数。如果连接句柄没有指定,
则默认使用最近一次由
mysql_connect()
函数打开的连接句柄。
注:
如果你使用事务处理(transactions),你需要在
INSERT,UPDATE
或
DELETE
查询后调用
mysql_affected_rows()
函数,而不是在
commit
命令之后。
如果最近一次 *** 作是没有任何条件(WHERE)的
DELETE
查询,
在表中所有的记录都会被删除,但该函数返回值为
0。
注:
当使用
UPDATE
查询,MySQL
不会将原值和新值一样的列更新。
这样使得
mysql_affected_rows()
函数返回值不一定就是查询条件所符合的记录数。
只有真正被修改的记录数才会被返回。
mysql_affected_rows()
函数不适用于
SELECT
语句;只适用于能够修改记录的语句中。请使用
mysql_num_rows()
函数来获得
SELECT
所返回的记录行数。
如果最近一次查询失败的话,函数返回
-1。
例子
1.
Delete
*** 作
?php
/*
连接数据库
*/
mysql_pconnect("localhost",
"mysql_user",
"mysql_password")
or
die
("Could
not
connect"
.
mysql_error())
mysql_select_db("mydb")
/*
这会返回有效的被删除记录数。
*/
mysql_query("DELETE
FROM
mytable
WHERE
id
<
10")
printf
("Records
deleted:
%d/n",
mysql_affected_rows())
/*
没有任何条件(where)的删除语句,返回
0
*/
mysql_query("DELETE
FROM
mytable")
printf
("Records
deleted:
%d/n",
mysql_affected_rows())
?
以上的例子会得出下面的运行结果:
Records
deleted:
10Records
deleted:
0
例子
2.
Update
*** 作
?php
/*
连接数据库
*/
mysql_pconnect("localhost",
"mysql_user",
"mysql_password")
or
die
("Could
not
connect"
.
mysql_error())
mysql_select_db("mydb")
/*
Update
记录
*/
mysql_query("UPDATE
mytable
SET
used=1
WHERE
id
<
10")
printf
("Updated
records:
%d/n",
mysql_affected_rows())
mysql_query("COMMIT")
?
以上的例子会得出下面的运行结果:
Updated
Records:
10
参见
mysql_num_rows()
和
mysql_info()。
mysql_affected_rows()
返回的是对行 *** 作的个数
$query=mysql_query("select
*
from
love_mp3_table
")
mysql_affected_rows()//其实对这个也有效,返回44,在这和mysql_num_rows($query)效果一样
$query=mysql_query("INSERT
INTO
table(id,title,hrefurl)
VALUE('','节节胜利','http://')")
mysql_affected_rows()//返回1
$query=mysql_query("DELETE
FROM
tabel
WHERE
id=45")
mysql_affected_rows()//返回1
$query=mysql_query("UPDATE
table
SET
title='我是'
WHERE
id=44")
mysql_affected_rows()//返回1
你说的应该是这个@@ROWCOUNT
返回受上一语句影响的行数。
语法
@@ROWCOUNT
返回类型
integer
注释
任何不返回行的语句将这一变量设置为 0 ,如 IF 语句。
示例
下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。
UPDATE authors SET au_lname = 'Jones'
WHERE au_id = '999-888-7777'
select @@ROWCOUNT 就是更新影响的行
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)