ConFoo Montreal 2017 Calling for Papers

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::changes Devolver el número de filas de la base de datos que fueron cambiadas (o insertadas, o eliminadas) por la sentencia SQL más reciente

Descripción

public int SQLite3::changes ( void )

Devuelve el número de filas de la base de datos que fueron cambiadas (o insertadas, o eliminadas) por la sentencia SQL más reciente.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve un valor de tipo integer correspondiente al número de filas de la base de datos cambiadas (o insertadas, o eliminadas) por la sentencia SQL más reciente.

Ejemplos

Ejemplo #1 Ejemplo de SQLite3::changes()

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

$consulta $bd->exec('UPDATE counter SET views=0 WHERE page="test"');
if (
$consulta) {
    echo 
'Número de filas modificadas: '$bd->changes();
}
?>

add a note add a note

User Contributed Notes 2 notes

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