©
                    本文档使用
                    php中文网手册 发布
                
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_changes -- SQLiteDatabase::changes — Returns the number of rows that were changed by the most recent SQL statement
$dbhandle 
   )面向对象风格 (method):
   Returns the numbers of rows that were changed by the most recent SQL
   statement executed against the dbhandle database
   handle.
  
dbhandle The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.
Returns the number of changed rows.
Example #1 过程化风格
  <?php
$dbhandle  =  sqlite_open ( 'mysqlitedb' );
 $query  =  sqlite_query ( $dbhandle ,  "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'" );
if (! $query ) {
    exit( 'Error in query.' );
} else {
    echo  'Number of rows modified: ' ,  sqlite_changes ( $dbhandle );
}
 ?>   
Example #2 面向对象风格
  <?php
$dbhandle  = new  SQLiteDatabase ( 'mysqlitedb' );
 $query  =  $dbhandle -> query ( "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'" );
if (! $query ) {
    exit( 'Error in query.' );
} else {
    echo  'Number of rows modified: ' ,  $dbhandle -> changes ();
}
 ?>   
[#1] jazz at funkynerd dot com [2010-03-31 21:06:46]
When executing DELETEs, I found that adding an always true WHERE clause returns the number of rows deleted.
eg:  "DELETE FROM my_table WHERE 1"  will delete all the rows and sqlite_changes() will return the correct number of rows deleted.
[#2] bermi ferrer:at-akelos dotCom [2005-09-28 06:02:27]
When counting deleted records from the database, I realized that sqlite_changes() will return 0 if you are deleting all the records without including a WHERE clause.
So after "DELETE FROM users" sqlite_open() will print 0 even if rows where deleted, but if you use "DELETE FROM users WHERE 1" you will get the right result.
I had this problem on versions 5.0.4 and 4.4.0 under Windows servers.