SQLite3::changes

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

SQLite3::changes返回最近的 SQL 语句更改(或插入或删除)的数据库行数

描述

public SQLite3::changes(): int

返回最近的 SQL 语句更改(或插入或删除)的数据库行数。

参数

此函数没有参数。

返回值

返回一个 int 值,对应于最近的 SQL 语句更改(或插入或删除)的数据库行数。

示例

示例 #1 SQLite3::changes() 示例

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

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if (
$query) {
echo
'已修改的行数:', $db->changes();
}
?>

添加笔记

用户贡献笔记 2 个笔记

3
teclado at tandex dot com
8 年前
存在一个问题,可能是故意的,也可能不是,但在我的情况下很烦人。如果你有以下模式

[代码]
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
);
[/代码]

当你尝试删除父行 (delete from parent where parent.id=?) 时,它会删除所有引用到该父的子项,但 SQLite3::changes() 方法仍然返回 1,就好像它只删除了父项一样。
-10
krebs dot seb at googlemail dot com
12 年前
似乎,当与保存点或事务一起使用时,此方法没有正确报告受影响的行。
To Top