PHP Velho Oeste 2024

sqlite_changes

SQLiteDatabase::changes

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

sqlite_changes -- SQLiteDatabase::changes Liefert die Anzahl der vom letzten SQL-Befehl geänderten Datenbankeinträge.

Beschreibung

sqlite_changes ( resource $dbhandle ) : int

Objektorientierter Stil (Methode):

public SQLiteDatabase::changes ( void ) : int

Liefert die Anzahl der Datenbankeinträgen, die durch den letzten SQL-Befehl an die Datenbankverbindung (dbhandle) geändert wurden.

Parameter-Liste

dbhandle

Die SQLite-Datenbankressource, erzeugt durch sqlite_open(), wenn im prozeduralem Kontext genutzt. Dieser Parameter wird in der objektorientierten Notation nicht benötigt.

Rückgabewerte

Liefert die Anzahl der geänderten Reihen.

Beispiele

Beispiel #1 Prozeduraler Stil

<?php
$dbhandle 
sqlite_open('mysqlitedb');
$query sqlite_query($dbhandle"UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!
$query) {
    exit(
'Fehler in Anfrage.');
} else {
    echo 
'Anzahl der geänderten Reihen: 'sqlite_changes($dbhandle);
}
?>

Beispiel #2 Objektorientierter Stil

<?php
$dbhandle 
= new SQLiteDatabase('mysqlitedb');
$query $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!
$query) {
    exit(
'Fehler in der Anfrage.');
} else {
    echo 
'Anzahl der geänderten Reihen: '$dbhandle->changes();
}
?>

Siehe auch

  • sqlite_open() - Öffnet eine SQLite-Datenbank und erzeugt die Datenbank, wenn diese nicht existiert.

add a note add a note

User Contributed Notes 2 notes

up
0
bermi ferrer:at-akelos dotCom
18 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.
up
-1
jazz at funkynerd dot com
14 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.
To Top