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.
sqlite_changes
(PHP 5, PECL sqlite >= 1.0.0)
sqlite_changes — Retorna o número de linhas que foram alteradas pela SQL mais recente.
Descrição
int sqlite_changes
( resource $dbhandle
)
Retorna o numero de linhas que foram modificadas pela mais recente SQL executada no banco de dados dbhandle.
Veja também sqlite_num_rows().
User Contributed Notes
sqlite_changes
sqlite_changes
jazz at funkynerd dot com
31-Mar-2010 06:06
31-Mar-2010 06:06
bermi ferrer:at-akelos dotCom
28-Sep-2005 03:02
28-Sep-2005 03:02
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.

sqlite_busy_timeout