<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.28.3">
</HEAD>
<BODY>
On Wed, 2010-09-22 at 15:05 +0530, sivaji j.g wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    I assume this is with an intention of avoiding duplicate records inserts. However in my case db_affected_rows() mostly returns 0 though a matching row is found in the table. <BR>
    <BR>
    I guess it is because the values being updated is same as values already available in the row. <BR>
</BLOCKQUOTE>
<BR>
Yes, as MySQL documentation clearly states:<BR>
<BR>
For <TT><A HREF="http://dev.mysql.com/doc/refman/5.1/en/update.html">UPDATE</A></TT> statements, the affected-rows value by default is the number of rows actually changed. If you specify the <TT>CLIENT_FOUND_ROWS</TT> flag to <TT><A HREF="http://dev.mysql.com/doc/refman/5.1/en/mysql-real-connect.html">mysql_real_connect()</A></TT> when connecting to <B><A HREF="http://dev.mysql.com/doc/refman/5.1/en/mysqld.html">mysqld</A></B>, the affected-rows value is the number of rows &#8220;found&#8221;; that is, matched by the <TT>WHERE</TT> clause.<BR>
<BR>
<A HREF="http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html">http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html</A><BR>
<BR>
</BODY>
</HTML>