在try catch中显示WPDB错误不起作用?

时间:2015-11-02 01:40:09

标签: php

我正在尝试创建一个将使用外部api和wpdb类的类但是我已经在try catch块中遇到问题,请确认以下内容是正确的:

<?php
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/wp-db.php' );

class LoLApi
{
  private $database;

  public function __construct()
  {
    try {
      $this->database = new wpdb('user', 'pass', 'table', '127.0.0.1');
      $this->database->show_errors();
    } catch (Exception $e) {
      return $e->getMessage();
    }
  }

}

?>

在另一页:

<?php
  session_start();
  require 'includes/lolapi.class.php';

  $api = new LoLApi;
  exit();
?>

1 个答案:

答案 0 :(得分:0)

您应该检查它是否返回WP_Error对象。如果WP_Error类不存在,它将死掉并转储错误消息。它实际上没有任何异常。

如果你包含wp-load.php,你将拥有WP_Error类,你可以在返回的数据中检查它。您还可以扩展wpdb类并覆盖db_connect方法以抛出正确的异常,而不是在连接失败时终止脚本。