文字

SQLite3::changes

(PHP 5 >= 5.3.0)

SQLite3::changes Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement

说明

public int SQLite3::changes ( void )

Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement.

参数

此函数没有参数。

返回值

Returns an integer value corresponding to the number of database rows changed (or inserted or deleted) by the most recent SQL statement.

范例

Example #1 SQLite3::changes() example

<?php
$db 
= new  SQLite3 ( 'mysqlitedb.db' );

$query  $db -> exec ( 'UPDATE counter SET views=0 WHERE page="test"' );
if (
$query ) {
    echo 
'Number of rows modified: ' $db -> changes ();
}
?>

用户评论:

[#1] teclado at tandex dot com [2015-10-02 16:10:52]

There is an issue that may be meant or not, but in my case is annoying. If you have have a schema like the following:


pragma foreign_key = on;
create table parent (
  id integer,
  a varchar,
  primary key (id asc)
);
create table child (
  id integer,
  b varchar,
  a integer,
  primary key (id asc),
  foreign key (a) references a (id) on delete cascade on update cascade
);


When you try to delete a parent row (delete from parent where parent.id=?) it deletes all the childs referenced to this parent, but the method SQLite3::changes() is still returning 1, as if it only have deleted the parent.

[#2] krebs dot seb at googlemail dot com [2011-11-10 13:25:48]

It seems, that this method doesn't report the affected rows properly, when using with savepoints or a transaction.

上一篇: 下一篇: