执行数据库查询后反馈受影响的行数语句怎么写?

执行数据库查询后反馈受影响的行数语句怎么写?,第1张

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 就是更新影响的行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6100840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存