首页 >社区问答列表 >lastInsertId()返回值得问题,我测试了,发现进行删除,修改时lastInsertId()返回的为"0",这样用if(null !== $this->xxx->lastInsertId()){} 进行判断无法区分插入删除还是新增啊?还是我测试代码有问题,还请知道的人解答一下,谢谢了)[用了单例模式]

lastInsertId()返回值得问题,我测试了,发现进行删除,修改时lastInsertId()返回的为"0",这样用if(null !== $this->xxx->lastInsertId()){} 进行判断无法区分插入删除还是新增啊?还是我测试代码有问题,还请知道的人解答一下,谢谢了)[用了单例模式]

class MyDb{

.......

public function test($sql)
{
   $this->affect_nums = $this->pdo->exec($sql);//影响行数
   if ($this->affect_nums>0) {
       $this->insertId = $this->pdo->lastInsertId();//最后插入id
       if(null !== $this->insertId){
           echo "插入成功。";
       } else {
           echo "修改/删除成功。";
       }
   } else {
       $error = $this->pdo->errorInfo();
       echo $error[2];
   }
}

}

$MyDb = MyDb::getInstance();
//表结构test2((auto_increment,primary key),name,password);
$MyDb->test("INSERT INTO test2(name,password) values('小华','123')");
echo $MyDb->affect_nums.",".$MyDb->insertId;
echo "<br>";
$MyDb->test("UPDATE test2  SET name='曾华' WHERE name='小华'");
echo $MyDb->affect_nums.",".$MyDb->insertId;
echo "<br>";
$MyDb->test("DELETE FROM test2 WHERE name='曾华'");
echo $MyDb->affect_nums.",".$MyDb->insertId;