免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2061 | 回复: 5
打印 上一主题 下一主题

PDO如何获取执行procedure的错误信息? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-04 12:59 |只看该作者 |倒序浏览
测试的procedure作用是往一个表中插入只有一个字符串字段的记录。字符串就是输入的参数字符串。
测试时,我将输入字符串长度加长,超过目标表的最大varchar2长度(我用oracle)
按理执行时应是有例处抛出。但这些信息我取不到,IE也无显示。

<?php
        $dbh = new PdO("oci:dbname=//10.243.102.110:1522/oracle", "user_name", "passwd",
                        array(PDO::ATTR_PERSISTENT => true)
                );
        $dbh->setattribute(PDO::ATTR_CASE,PDO::CASE_LOWER);
       $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $sth=$dbh->prepare("CALL Test_Pdo_P(?)");
        $var='01300000000000000000000000000000000'; //长度超过目标表的最大能容长度。
                                                    //缩短长度一切正常,能往目标表插入记录
        $sth->bindParam(1, $var, PDO::PARAM_STR, 200);
        // $sth->execute();
          if (!$sth->execute()) { //按理应有例处产生并执行以下代码,可是我测试时并没有
                              echo "ERROR:";   //我测试的结果是连这行都无输出,晕。
                                     echo $dbh->errorCode() . "<br>"; //PDO级别的错误代码
                                     $info=$dbh->errorInfo();  //驱动级级别的错误信息数组
                                             print_r($info);
                                             echo "<br>";
                                            }
        $dbh=null;
?>

[ 本帖最后由 weismart 于 2007-6-5 16:50 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-06-04 13:26 |只看该作者
用PDO的异常来处理。

论坛徽章:
0
3 [报告]
发表于 2007-06-04 14:27 |只看该作者

pdoexception 也捕获不到。

我本来就是用 try      
                   catch (pdoexception $e)
                   { ..........
                    }
来处理的,可也是捕获不到出错信息,最后才改成现在贴的那个样子。

论坛徽章:
0
4 [报告]
发表于 2007-06-04 16:03 |只看该作者

顶一下

为什么以上代码无法取得例外信息?

论坛徽章:
0
5 [报告]
发表于 2007-06-05 09:01 |只看该作者

自顶一下,找不出原因。

自顶一下,找不出原因。

论坛徽章:
0
6 [报告]
发表于 2007-06-05 16:42 |只看该作者

还是没有办法解决

看了邮件列表,按他们的样子处理还是不行的。我的IE根本就没有打印出错误信息来,显示为“该页无法显示”。firefox显示“该文档无信息”
邮件列表链接
http://www.nabble.com/Re:-PDO-Ex ... stion-p4211598.html
看来还是老老实实学oracle oci扩展,毕竟是oracle自己的东西。
看看有无高手能解决。

[ 本帖最后由 weismart 于 2007-6-5 17:33 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP