php查询数据库影响行数 php查询数据库影响行数和列数

PHP可以连接数据库就是执行不了SQL语句也返回不了受影响行数

1.最大执行时间问题,解决方法:分批处理逻辑,比如用ID大小分批处理

10余年建站经验, 网站建设、网站设计客户的见证与正确选择。成都创新互联提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。

2.多字段组合不可重复的设定,解决方法:查看表设计结构,看看有没有此项设定

3.去掉执行语句1,只运行语句2.

PHP函数mysql_affected_rows()与mysql_num_rows()有什么区别?

这两个函数功能完全不同:

mysql_affected_rows 取得前一次 MySQL 操作所影响的记录行数,操作是指INSERT、UPDATE、DELETE等,影响是指修改、变化的。如果函数失败,返回值是-1。此函数参数为连接ID,也可以不要参数(当前默认的连接)。

mysql_num_rows()返回结果集中行的数目,仅对 SELECT 语句有效。注意其参数是mysql_query返回的结果集ID。

php中mysql_affected_rows的作用是什么

定义和用法mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。

语法mysql_affected_rows(link_identifier)

参数:

描述link_identifier

必需:

MySQL 的连接标识符。如果没有指定,默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接,函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外,没有找到连接或无法建立连接,系统发出 E_WARNING 级别的警告信息。

说明:

取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

返回值:

执行成功,则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1。

如果最近一次操作是没有任何条件(WHERE)的 DELETE 查询,在表中所有的记录都会被删除,但本函数返回值在 4.1.2 版之前都为 0。

当使用 UPDATE 查询,MySQL 不会将原值与新值一样的列更新。这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。

REPLACE 语句首先删除具有相同主键的记录,然后插入一个新记录。该函数返回的是被删除的记录数加上被插入的记录数。

例子

?php

$con = mysql_connect("localhost","mysql_user","mysql_pwd");

if (!$con)

{

die("Could not connect: " . mysql_error());

}

mysql_select_db("mydb");

mysql_query("DELETE FROM mytable WHERE id 5");

$rc = mysql_affected_rows();

echo "Records deleted: " . $rc;

mysql_close($con);

?

输出:Records deleted: 4

php PDO操作oracle,如何返回sql语句所影响的记录行数

主要是三条语句:

1、声明一个PDO对象:

$conn = new PDO("");

2、运用exec函数:

$sql="DELETE FROM fruit WHERE colour = 'red'";

sql语句不能是select操作,select操作用这个函数不会返回结果

$count = $conn-exec($sql);

3、输出结果:

print("Deleted $count rows.\n");

怎么在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: 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

如何用php修改数据库中的数据

举例如下:

创建userinfo_update.php页面用于查询用户信息,先显示信息,在修改:

先通过GET获取用户编号查询用户信息:

$sql = "select * from user_info where user_id='".$_GET['userId']."'";

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

if($row = mysql_fetch_array($result)){

}

页面效果:

创建update.php文件,用于修改用户信息:

使用到了mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。

//通过post获取页面提交数据信息

$userId = $_POST[userId];

$userName = $_POST[userName];

$userAge = $_POST[userAge];

$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";

mysql_query($sql,$conn);//执行SQL

$mark  = mysql_affected_rows();//返回影响行数

$url = "userinf_select.php";

运行结果

创建delete.php文件,完成删除用户信息功能:

$userId = $_GET['userId'];

include 'connection.php';

$sql = "delete from user_info where user_id='".$userId."'";

mysql_query($sql,$con);

$mark  = mysql_affected_rows();//返回影响行数

if($mark0){

echo "删除成功";

}else{

echo  "删除失败";

}

mysql_close($con);

运行结果:


文章标题:php查询数据库影响行数 php查询数据库影响行数和列数
URL分享:http://myzitong.com/article/dodshhc.html