(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::changes — Получить количество строк, которые были изменены/удалены/вставлены последним запросом
Возвращает количество строк, которые были изменены/удалены/вставлены последним SQL-запросом.
Сигнатура функции не содержит параметров.
Возвращает количество строк (int ), которые были изменены/удалены/вставлены последним SQL-запросом.
Пример #1 Пример использования SQLite3::changes()
<?php
$db = new SQLite3('mysqlitedb.db');
$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if ($query) {
echo 'Количество изменённых строк: ', $db->changes();
}
?>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.