ใช้ฟังก์ชัน mysql_affected_rows() (Deprecated) หรือเมธอดของ PDO/MySQLi เพื่อนับจำนวนแถวที่ถูกเปลี่ยนแปลงโดยคำสั่ง INSERT/UPDATE/DELETE
โค้ด PHP แบบเก่า (mysql_* - Deprecated)
<html>
<head>
<title>Rows affected by query</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if (!$conn) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully<br />';
mysql_select_db('TUTORIALS');
$result_id = mysql_query($query, $conn_id);
$count = ($result_id ? mysql_affected_rows($conn_id) : 0);
print("$count rows were affected\n");
?>
</body>
</html>
⚠️ หมายเหตุ: โค้ดตัวอย่างมีตัวแปร $query และ $conn_id ไม่ได้ประกาศ - เป็นโค้ดไม่สมบูรณ์
แนะนำ: ใช้ PDO หรือ MySQLi
PDO: ใช้ rowCount()
<?php
$pdo = new PDO("mysql:host=localhost;dbname=TUTORIALS;charset=utf8mb4", "root", "rootpassword");
$stmt = $pdo->exec("UPDATE table SET col = 'value' WHERE condition");
echo "Rows affected: " . $stmt; // exec() คืนจำนวนแถวโดยตรง
// หรือสำหรับ prepared statement:
$stmt = $pdo->prepare("UPDATE table SET col = ? WHERE id = ?");
$stmt->execute(['value', 1]);
echo "Rows affected: " . $stmt->rowCount();
?>
MySQLi: ใช้ affected_rows
<?php
$mysqli = new mysqli("localhost", "root", "rootpassword", "TUTORIALS");
$mysqli->query("UPDATE table SET col = 'value' WHERE condition");
echo "Rows affected: " . $mysqli->affected_rows;
?>
สรุป: ใช้ PDO::exec() หรือ PDOStatement::rowCount() / mysqli::affected_rows แทน mysql_affected_rows() ที่ล้าสมัยแล้ว