【问题标题】:Access PDO::errorCode in CakePHP?在 CakePHP 中访问 PDO::errorCode?
【发布时间】:2013-05-12 06:50:59
【问题描述】:

我有一个 CakePHP 应用程序,我有兴趣对用户尝试上传对于 MySQL 数据包大小而言太大的文件做出反应。我想获取 MySQL 错误,然后基于此向用户提供错误消息。

看起来 CakePHP 在后台使用 PDO,但我不知道如何访问它。我宁愿借用 CakePHP 的 PDO 连接,这样我就不必使用用户名、密码等创建新的 PDO 连接(也不必担心多个连接到同一个数据库的问题等)。

CakePHP 中似乎有一个 PDO 类 (http://api.cakephp.org/2.2/class-PDO.html),但我不确定如何实际使用它以调用 errorCode() 方法。

【问题讨论】:

    标签: mysql cakephp pdo


    【解决方案1】:

    This 是您可能需要的方法。在您的控制器中保存操作后,您可以使用$this->SomeModel->getDataSource()->lastError() 来获取错误。

    【讨论】:

    • 是的,@ADmad 这将获取 dataSource 对象并检索发生的最后一个错误。这是 Cake 中最短的方法,但您也可以在您感兴趣的模型中实现自定义保存。
    【解决方案2】:

    或者....看看这个:

    if( is_a( $this->SomeModel->getDataSource(), "DboSource") ) {
        $myPDO = $this->SomeModel->getDataSource()->getConnection();
        debug($myPDO.errorCode()); // or whatever...
    }
    

    无论如何,非常感谢您在这方面的帮助 - 文档中的跳数太多了,我无法自己找到它。

    (我在此处发布此内容,而不是作为对您答案的评论,以便更好地脱颖而出)

    【讨论】:

    • 对于任何愿意发表评论的人来说,这是一个“元”问题:我应该将 ADmad 的答案标记为正确还是这个?如果没有 ADmad 的帮助,我不会找到这个,但这实际上回答了我发布的问题。任何建议将不胜感激!
    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 2020-05-24
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    相关资源
    最近更新 更多