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

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;

黄粱一梦梦黄梁
黄粱一梦梦黄梁

全部回复(1)
黄粱一梦梦黄梁

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!