PHP 8.1.0 RC 2 available for testing


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

SQLite3::changes 直近の SQL 文で変更 (あるいは挿入、削除) された行の数を返す


public SQLite3::changes(): int

直近の SQL 文で変更 (あるいは挿入、削除) された行の数を返します。




直近の SQL 文で変更 (あるいは挿入、削除) された行の数を表す int 値を返します。

例1 SQLite3::changes() の例

= new SQLite3('mysqlitedb.db');

$query $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if (
$query) {
'変更された行の数: '$db->changes();

add a note add a note

User Contributed Notes 2 notes

teclado at tandex dot com
5 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:

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

When you try to delete a parent row (delete from parent where 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.
krebs dot seb at googlemail dot com
9 years ago
It seems, that this method doesn't report the affected rows properly, when using with savepoints or a transaction.
To Top