duan4739 2014-07-03 18:09
浏览 45

确定哪个预准备语句在try / catch中导致错误

In the catch clause, how do I determine which prepared statement caused the error so that I could apply debugDumpParams on it? See the below example.

$p1=db::db()->prepare("INSERT INTO t1 (a,b,c) VALUES (:a,:b,:c)");
$p2=db::db()->prepare("INSERT INTO t2 (a,b,c) VALUES (:a,:b,:c)");
try{
    $data=array('a'=>1,'b'=>2,'c'=>3);
    $p1->execute($data);
    $p2->execute($data);
}
catch(PDOException $e){
    //Display debugDumpParams() for the statement that caused the error
}
  • 写回答

3条回答 默认 最新

  • dqc3469 2014-07-03 18:33
    关注

    To determine which query fails execute them in different try catch blocks.

    $data=array('a'=>1,'b'=>2,'c'=>3);
    
    $p1 = db::db()->prepare("INSERT INTO t1 (a,b,c) VALUES (:a,:b,:c)");
    try {    
        $p1->execute($data);
    } catch(PDOException $e) {
        // Display debugDumpParams() for the statement that caused the error
        // First query has failed
    }
    $p2 = db::db()->prepare("INSERT INTO t2 (a,b,c) VALUES (:a,:b,:c)");
    try {    
        $p2->execute($data);
    } catch(PDOException $e) {
        // Display debugDumpParams() for the statement that caused the error
        // Second query has failed
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)