PHP mysql_affected_rows 函式語法
int mysql_affected_rows ( resource )
語法中的 resource 即為前一次或最近一次執行的 MySQL 語法,若無執行 MySQL 而使用 mysql_affected_rows 函式,則此函式會自動調用 mysql_connect 來執行,當無法建立 MySQL 連接或找不到 MySQL 連接,會產生 E_WARNING 級別的錯誤,反之,若順利統計出 MySQL 語法所影響的行數,就返回一個整數(int)。僅管 mysql_affected_rows 函式用在統計 MySQL 語法影響的行數非常好用,但此函式在 PHP 5.5.0 版本已經被廢棄,並且在未來將會被移除,所以若使用的 PHP 版本為 5.5.0 或更新的版本,需改用 PHP 官方所提供的替代函式,以下兩個函式即為替代函式。
- mysqli_affected_rows
- PDOStatement::rowCount
<?php
$mysql_link = mysql_connect('localhost', 'UserName', 'Password');
if (!$mysql_link) {
die('無法連接資料庫: ' . mysql_error());
}
echo 'Affected rows num: '.mysql_affected_rows();
以上範例輸出$mysql_link = mysql_connect('localhost', 'UserName', 'Password');
if (!$mysql_link) {
die('無法連接資料庫: ' . mysql_error());
}
echo 'Affected rows num: '.mysql_affected_rows();
Affected rows num: 0
範例一開始用 mysql_connect 建立了一個資料庫連接,若沒有建立連接,可能會出現以下錯誤訊息Warning: mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established in ...
既然 MySQL 的連接建立完成,就讓範例在完全沒有進行 DELETE、UPDATE、INSERT 等動作的情況下,直接採用mysql_affected_rows 函式來統計,最終因為沒有任何的影響行數,就返回整數 0 這樣的結果。延伸閱讀