PHPCon Poland 2024

SQLite3::changes

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

SQLite3::changes Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente

Descrição

public SQLite3::changes(): int

Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um valor int correspondente ao número de linhas do banco de dados alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente.

Exemplos

Exemplo #1 Exemplo de SQLite3::changes()

<?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();
}
?>

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