PHP Unconference Europe 2015

sqlite_changes

SQLiteDatabase::changes

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_changes -- SQLiteDatabase::changes Devuelve el número de filas que han sido cambiadas mediante la sentencia SQL más reciente.

Descripción

int sqlite_changes ( resource $dbhandle )

Estilo orientado a objetos (método):

public int SQLiteDatabase::changes ( void )

Devuelve el número de filas que han sido cambiadas mediante la sentencia SQL más reciente ejecutada contra el manejador de base de datos dbhandle.

Parámetros

dbhandle

El recurso de base de datos devuelto desde sqlite_open(). Este parámetro no es requerido cuando se usa el método "Orientado a objetos".

Valores devueltos

Devuelve el número de filas cambiadas.

Ejemplos

Ejemplo #1 Estilo por procedimientos

<?php
$dbhandle 
sqlite_open('mysqlitedb');
$query sqlite_query($dbhandle"UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!
$query) {
    exit(
'Error in query.');
} else {
    echo 
'Number of rows modified: 'sqlite_changes($dbhandle);
}
?>

Ejemplo #2 Estilo orientado a objetos

<?php
$dbhandle 
= new SQLiteDatabase('mysqlitedb');
$query $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!
$query) {
    exit(
'Error in query.');
} else {
    echo 
'Number of rows modified: '$dbhandle->changes();
}
?>

Ver también

  • sqlite_open() - Abrir una base de datos SQLite y crear la base de datos si no existe

add a note add a note

User Contributed Notes 2 notes

up
0
jazz at funkynerd dot com
4 years ago
When executing DELETEs, I found that adding an always true WHERE clause returns the number of rows deleted.

eg:  "DELETE FROM my_table WHERE 1"  will delete all the rows and sqlite_changes() will return the correct number of rows deleted.
up
0
bermi ferrer:at-akelos dotCom
9 years ago
When counting deleted records from the database, I realized that sqlite_changes() will return 0 if you are deleting all the records without including a WHERE clause.

So after "DELETE FROM users" sqlite_open() will print 0 even if rows where deleted, but if you use "DELETE FROM users WHERE 1" you will get the right result.

I had this problem on versions 5.0.4 and 4.4.0 under Windows servers.
To Top