搜索

首页  >  问答  >  正文

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;

黄粱一梦梦黄梁黄粱一梦梦黄梁1975 天前1177

全部回复(1)我来回复

  • 黄粱一梦梦黄梁

    黄粱一梦梦黄梁2019-07-23 22:09:54

    抱歉,代码中的lastInsertid()少了两个括号,复制的时候不知道为什么少了,问题不是这个...

    回复
    0
  • 取消回复