SQLite3::changes

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

SQLite3::changes Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL

Description

public SQLite3::changes(): int

Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier correspondant au nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL.

Exemples

Exemple #1 Exemple avec SQLite3::changes()

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

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if (
$query) {
echo
'Nombre de lignes modifiées : ', $db->changes();
}
?>

add a note add a note

User Contributed Notes 2 notes

up
4
teclado at tandex dot com
9 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
-8
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