PDO - 检查行是否已更新?

sup*_*lle 3 php mysql pdo

其他人已经问过这个问题了,但我的问题有点具体.

我有这个问题:

$sql = "UPDATE table SET option=? WHERE number=?";
$q = $conn->prepare($sql);
$q->execute(array($option, $number));
$q->setFetchMode(PDO::FETCH_BOTH);

echo $q->rowCount();
Run Code Online (Sandbox Code Playgroud)

如果WHERE number已经存在且SET option相同,则$q->rowCount()等于0

如果WHERE number不存在且行未更新,$q->rowCount()则为equals0

如何区分这些非更新?

Dan*_*ité 8

在最近的PHP版本中,它由PDO::MYSQL_ATTR_FOUND_ROWS属性控制.设置为true,根据文档,效果是:

Return the number of found (matched) rows, not the number of changed rows.
Run Code Online (Sandbox Code Playgroud)