本文目录一览:
- 1、如何取得前一次MySql操作所影响的行数
- 2、高分求助mysql 存储过程报错以及如何返回受影响的行数
- 3、怎么在mysql命令行中返回mysql的影响行数
- 4、php sqlsrv 执行update很诡异,受影响行数有返回,数据无变化
- 5、如何在PHP中获取MYSQL数据库返回的数据的行数?
- 6、执行数据库查询后反馈受影响的行数语句怎么写?
如何取得前一次MySql操作所影响的行数
本扩展自
PHP
5.5.0
起已废弃,并在将来会被移除。应使用
MySQLi
或
PDO_MySQL
扩展来替换之。参见
MySQL:选择
API
指南以及相关
FAQ
以获取更多信息。用以替代本函数的有:
mysqli_affected_rows()
PDOStatement::rowCount()
说明
int
mysql_affected_rows
([
resource
$link_identifier
=
NULL
]
)
取得最近一次与
link_identifier
关联的
INSERT,UPDATE
或
DELETE
查询所影响的记录行数。
参数
link_identifier
MySQL
连接。如不指定连接标识,则使用由
mysql_connect()
最近打开的连接。如果没有找到该连接,会尝试不带参数调用
mysql_connect()
来创建。如没有找到连接或无法建立连接,则会生成
E_WARNING
级别的错误。
返回值
执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回
-1。
如果最近一次操作是没有任何条件(WHERE)的
DELETE
查询,在表中所有的记录都会被删除,但本函数返回值在
4.1.2
版之前都为
0。
当使用
UPDATE
查询,MySQL
不会将原值和新值一样的列更新。这样使得
mysql_affected_rows()
函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。
REPLACE
语句首先删除具有相同主键的记录,然后插入一个新记录。本函数返回的是被删除的记录数加上被插入的记录数。
"INSERT
...
ON
DUPLICATE
KEY
UPDATE"
这种情况的查询,当执行了一次
INSERT
返回的值会是
1;如果是对已经存在的记录执行一次
UPDATE
将返回
2。
高分求助mysql 存储过程报错以及如何返回受影响的行数
你说的应该是这个
@@ROWCOUNT
返回受上一语句影响的行数。
语法
@@ROWCOUNT
返回类型
integer
注释
任何不返回行的语句将这一变量设置为 0 ,如 IF 语句。
示例
下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。
UPDATE authors SET au_lname = 'Jones'
WHERE au_id = '999-888-7777'
select @@ROWCOUNT 就是更新影响的行
怎么在mysql命令行中返回mysql的影响行数
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:
Warnings:
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)的删除语句,返回
*/
mysql_query("DELETE
FROM
mytable");
printf
("Records
deleted:
%d/n",
mysql_affected_rows());
?
以上的例子会得出下面的运行结果:
Records
deleted:
10Records
deleted:
例子
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
php sqlsrv 执行update很诡异,受影响行数有返回,数据无变化
1.最大执行时间问题,解决方法:分批处理逻辑,比如用ID大小分批处理
2.多字段组合不可重复的设定,解决方法:查看表设计结构,看看有没有此项设定
3.去掉执行语句1,只运行语句2.
不能解决问题可联系我
如何在PHP中获取MYSQL数据库返回的数据的行数?
1、首先打开MYSQL的管理工具,新建一个test表,并且在表中插入两个字段。
2、接下来在Editplus编辑器中创建一个PHP文件,然后进行数据库连接,并且选择要操作的数据库。
3、然后通过mysql_query方法执行一个Insert的插入语句。
4、执行完毕以后,我们回到数据库管理工具中,这个时候你会发现插入的中文乱码了。
5、接下来我们在PHP文件中通过mysql_query执行一个set names utf8语句即可完成操作。
执行数据库查询后反馈受影响的行数语句怎么写?
1、MySQL 更新或插入后获取受影响行数,用下面函数可以获取:
SELECT ROW_COUNT();
2、Mysql的select语句得到的行数:
select count(1) from index_scoreinfo;