取得前一次MySQL操作所影響的記錄行數

2021-05-23 12:58:47 字數 3006 閱讀 4457

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_***_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

mysql安裝一次 記一次mysql安裝

mysql 分為安裝版和壓縮版 2.安裝 2.1 解壓得到 mysql 8.0.15 winx64 資料夾 2.2 在mysql 8.0.15 winx64 資料夾下,新建配置檔案my.ini,內容 如下 mysqld 設定3306埠 port 3306 設定mysql的安裝目錄,這裡是唯一你需要改...

記一次失誤造成的影響

在使用salt給機器新增時間同步的計畫任務的時候,忘記salt的cron模組的寫法了,於是偷懶直接使用echo追加到 var spool cron root的方法新增了計畫任務。如下 salt cmd.run echo 10 usr sbin ntpdate ntp1.aliyun.com dev ...

記一次加班所引起的深思

昨天公司進行上線前整合im聊天工具,我負責這塊的除錯,忙了一下午加上一晚上。實際上沒有難度的,但給我帶來了很多麻煩。讓我一一道來吧。除錯工作主要是在js端進行的,im又只能用ie來除錯,ie的debug工具我又不會用,我就是用了最原始的alert 場景是這樣的,當使用者已經登入 平台的時候,如果發起...