PHP 8.1.28 Released!

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::changes Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.

Beschreibung

public SQLite3::changes(): int

Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt einen int-Wert zurück, der der Anzahl an geänderten, gelöschten oder hinzugefügten Datenbankreihen der letzten SQL-Anfrage widerspiegelt.

Beispiele

Beispiel #1 SQLite3::changes()-Beispiel

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

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if (
$query) {
echo
'Anzahl der modifizierten Reihen: ', $db->changes();
}
?>

add a note

User Contributed Notes 2 notes

up
3
teclado at tandex dot com
8 years ago
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.
up
-10
krebs dot seb at googlemail dot com
12 years ago
It seems, that this method doesn't report the affected rows properly, when using with savepoints or a transaction.
To Top