uint64_t
mysql_affected_rows(MYSQL *mysql)
          mysql_affected_rows() may be
          called immediately after executing a statement with
          mysql_real_query() or
          mysql_query(). It returns the
          number of rows changed, deleted, or inserted by the last
          statement if it was an UPDATE,
          DELETE, or
          INSERT. For
          SELECT statements,
          mysql_affected_rows() works
          like mysql_num_rows().
        
          For UPDATE statements, the
          affected-rows value by default is the number of rows actually
          changed. If you specify the
          CLIENT_FOUND_ROWS flag to
          mysql_real_connect() when
          connecting to mysqld, the affected-rows
          value is the number of rows “found”; that is,
          matched by the WHERE clause.
        
          For REPLACE statements, the
          affected-rows value is 2 if the new row replaced an old row,
          because in this case, one row was inserted after the duplicate
          was deleted.
        
          For
          INSERT
          ... ON DUPLICATE KEY UPDATE statements, the
          affected-rows value per row is 1 if the row is inserted as a
          new row, 2 if an existing row is updated, and 0 if an existing
          row is set to its current values. If you specify the
          CLIENT_FOUND_ROWS flag, the affected-rows
          value is 1 (not 0) if an existing row is set to its current
          values.
        
          Following a CALL statement for
          a stored procedure,
          mysql_affected_rows() returns
          the value that it would return for the last statement executed
          within the procedure, or 0 if that
          statement would return -1. Within the
          procedure, you can use
          ROW_COUNT() at the SQL level to
          obtain the affected-rows value for individual statements.
        
          mysql_affected_rows() returns
          a meaningful value for a wide range of statements. For
          details, see the description for
          ROW_COUNT() in
          Information Functions.
        
          An integer greater than zero indicates the number of rows
          affected or retrieved. Zero indicates that no records were
          updated for an UPDATE
          statement, no rows matched the WHERE clause
          in the query or that no query has yet been executed. -1
          indicates that the query returned an error or that, for a
          SELECT query,
          mysql_affected_rows() was
          called prior to calling
          mysql_store_result().
        
          Because mysql_affected_rows()
          returns an unsigned value, you can check for -1 by comparing
          the return value to (uint64_t)-1 (or to
          (uint64_t)~0, which is equivalent).