PDO执行的SQL代码与已有内容相同就返回0

用ajax发送post数据给php页面处理,php页面上用pdo对数据库更新。
php页面中使用如下语句判断exec是否执行成功。
if($pdo->exec($sql))return 1; else return 0;

很奇怪,只要提交的数据没有变化(即相同SQL代码),就会返回0,随便修改数据再提交就可以返回1。
我把sql代码拿出来在phpMyAdmin里多次直接执行,每次都会成功并提示“影响1行”,这说明mysql里没变总是会执行吧。

上网查资料后知道exec返回的是影响的行数,我不知道是不是因为这个。

请问:PDO下相同代码执行第二遍,exec是否就会返回0?如何判断exec返回0是因为数据库不需要更新,而不是出错呢?

nginx反向代理 如何获取代理前的地址
java web 自己的项目 通过nginx反向代理 如何获取代理前的地址