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

來源:互聯網
上載者:User

mysql_affected_rows
(PHP 3, PHP 4 )

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: 10
Records 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()。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.