SQLite 函数
在线手册:中文  英文

sqlite_changes

SQLiteDatabase::changes

(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

说明

int sqlite_changes ( resource $dbhandle )

面向对象风格 (method):

public int SQLiteDatabase::changes ( void )

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();
}
?>

参见


SQLite 函数
在线手册:中文  英文

用户评论:

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.

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.

易百教程