SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7)

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.

Примеры

Пример #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();
}
?>

Коментарии

It seems, that this method doesn't report the affected rows properly, when using with savepoints or a transaction.
2011-11-10 15:25:48
http://php5.kiev.ua/manual/ru/sqlite3.changes.html
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:

[code]
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
);
[/code]

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.
2015-10-02 19:10:52
http://php5.kiev.ua/manual/ru/sqlite3.changes.html

    Поддержать сайт на родительском проекте КГБ