萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP mysql_affected_rows() 函數詳解:取得上一步 MySQL 操作影響的列數

函數用途

mysql_affected_rows() 回傳最近一次 INSERT、UPDATE、DELETE 或 REPLACE 查詢所影響的資料列數。注意:此函數屬於已棄用的 mysql 擴展(PHP 5.5.0 棄用,PHP 7.0.0 移除),新專案請改用 MySQLi 或 PDO。

語法與參數

mysql_affected_rows(resource $link_identifier = null): int
參數說明
$link_identifier選填,MySQL 連線資源;省略時使用最近一次 mysql_connect() 開啟的連線

成功回傳影響列數(int),失敗回傳 -1。

實戰範例

<?php
$con = mysql_connect("localhost", "mysql_user", "mysql_pwd");
if (!$con) {
    die("連線失敗: " . mysql_error());
}

mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();
echo "刪除筆數: $rc";  // 輸出:刪除筆數: 4

mysql_close($con);
?>

現代替代方案(MySQLi / PDO)

MySQLi 物件導向

<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->query("DELETE FROM mytable WHERE id < 5");
echo "刪除筆數: " . $mysqli->affected_rows;
?>

PDO

<?php
$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
$stmt = $pdo->exec("DELETE FROM mytable WHERE id < 5");
echo "刪除筆數: $stmt";  // PDO::exec 直接回傳影響列數
?>

適用場景與注意事項

  • 僅對 INSERT、UPDATE、DELETE、REPLACE 有效;SELECT 請用 mysql_num_rows()(或 MySQLi num_rows、PDO rowCount())。
  • 若最後一次查詢失敗,回傳 -1。
  • 舊專案維護時使用;新專案務必改用 MySQLi 或 PDO。
copyright © 萬盛學電腦網 all rights reserved