Title: wpdb::bail
Published: April 25, 2014
Last modified: February 24, 2026

---

# wpdb::bail( string $message, string $error_code ): void|false

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#wp--skip-link--target)

Wraps errors in a nice header and footer and dies.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#description)󠁿

Will not die if wpdb::$show_errors is false.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#parameters)󠁿

 `$message`stringrequired

The error message.

`$error_code`stringoptional

A computer-readable string to identify the error.
 Default `'500'`.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#return)󠁿

 void|false Void if the showing of errors is enabled, false if disabled.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#source)󠁿

    ```php
    public function bail( $message, $error_code = '500' ) {
    	if ( $this->show_errors ) {
    		$error = '';

    		if ( $this->dbh instanceof mysqli ) {
    			$error = mysqli_error( $this->dbh );
    		} elseif ( mysqli_connect_errno() ) {
    			$error = mysqli_connect_error();
    		}

    		if ( $error ) {
    			$message = '<p><code>' . $error . "</code></p>\n" . $message;
    		}

    		wp_die( $message );
    	} else {
    		if ( class_exists( 'WP_Error', false ) ) {
    			$this->error = new WP_Error( $error_code, $message );
    		} else {
    			$this->error = $message;
    		}

    		return false;
    	}
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wpdb.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wpdb.php#L3948)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wpdb.php#L3948-L3972)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_die()](https://developer.wordpress.org/reference/functions/wp_die/)`wp-includes/functions.php` |

Kills WordPress execution and displays HTML page with an error message.

  | 
| [WP_Error::__construct()](https://developer.wordpress.org/reference/classes/wp_error/__construct/)`wp-includes/class-wp-error.php` |

Initializes the error.

  |

| Used by | Description | 
| [wpdb::check_connection()](https://developer.wordpress.org/reference/classes/wpdb/check_connection/)`wp-includes/class-wpdb.php` |

Checks that the connection to the database is still up. If not, try to reconnect.

  | 
| [wpdb::select()](https://developer.wordpress.org/reference/classes/wpdb/select/)`wp-includes/class-wpdb.php` |

Selects a database using the current or provided database connection.

  | 
| [wpdb::db_connect()](https://developer.wordpress.org/reference/classes/wpdb/db_connect/)`wp-includes/class-wpdb.php` |

Connects to and selects database.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wpdb/bail/?output_format=md#changelog)󠁿

| Version | Description | 
| [1.5.0](https://developer.wordpress.org/reference/since/1.5.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwpdb%2Fbail%2F)
before being able to contribute a note or feedback.