获取导致PHP PDO忽略的SQLite行的ID

获取导致PHP PDO忽略的SQLite行的ID,php,sql,sqlite,pdo,Php,Sql,Sqlite,Pdo,我有一个具有唯一约束的SQLite表,简化如下: CREATE TABLE addresses ( addressID INTEGER PRIMARY KEY, officeName TEXT, address TEXT NOT NULL CHECK(address<>''), UNIQUE (officeName, address) 前两行在且仅当地址不存在时向数据库添加地址。最后一行给出了新添加地址的ID…如果添加了地址。否则,它只会给我最后添加的地址的ID。我想知道的是,如

我有一个具有唯一约束的SQLite表,简化如下:

CREATE TABLE addresses (
addressID INTEGER PRIMARY KEY, 
officeName TEXT,
address TEXT NOT NULL CHECK(address<>''),
UNIQUE (officeName, address)

前两行在且仅当地址不存在时向数据库添加地址。最后一行给出了新添加地址的ID…如果添加了地址。否则,它只会给我最后添加的地址的ID。我想知道的是,如果插入由于重复而被忽略,是否有什么好方法可以获取导致忽略的行的ID。我想我可以手动缓存和比较最后插入的ID,如果我再次获得相同的ID,请选择并搜索该ID。但我有点希望有一种更有效的内置方式来获取该值。

没有内置机制;你必须做一个单独的选择

$sth = $db->prepare("INSERT OR IGNORE INTO addresses (officeName,address) VALUES (?,?)");
$sth->execute(array($office,$address));
$thisAddressID = $db->lastInsertId();