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.SQLite3::changes
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SQLite3::changes
Референца за `sqlite3.changes.php` со подобрена типографија и навигација.
SQLite3::changes
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::changes — Враќа број на редови во базата на податоци што беа променети (или вметнати или избришани) од последниот SQL исказ
= NULL
Враќа број на редови во базата на податоци што беа променети (или вметнати или избришани) од последниот SQL исказ.
Параметри
Оваа функција нема параметри.
Вратени вредности
Враќа int вредност што одговара на бројот на редови во базата на податоци променети (или вметнати или избришани) од последниот SQL исказ.
Примери
Пример #1 (PHP 5 >= 5.3.0, PHP 7, PHP 8) 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();
}
?>