wpdb::print_error()publicWP 0.71

Prints SQL/DB error.

Method of the class: wpdb{}

No Hooks.

Return

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

Usage

global $wpdb;
$wpdb->print_error( $str );
$str(string)
The error to display.
Default: ''

Notes

  • Global. Array. $EZSQL_ERROR Stores error information of query and error string.

Changelog

Since 0.71 Introduced.

wpdb::print_error() code WP 6.4.3

public function print_error( $str = '' ) {
	global $EZSQL_ERROR;

	if ( ! $str ) {
		$str = mysqli_error( $this->dbh );
	}

	$EZSQL_ERROR[] = array(
		'query'     => $this->last_query,
		'error_str' => $str,
	);

	if ( $this->suppress_errors ) {
		return false;
	}

	$caller = $this->get_caller();
	if ( $caller ) {
		// Not translated, as this will only appear in the error log.
		$error_str = sprintf( 'WordPress database error %1$s for query %2$s made by %3$s', $str, $this->last_query, $caller );
	} else {
		$error_str = sprintf( 'WordPress database error %1$s for query %2$s', $str, $this->last_query );
	}

	error_log( $error_str );

	// Are we showing errors?
	if ( ! $this->show_errors ) {
		return false;
	}

	wp_load_translations_early();

	// If there is an error then take note of it.
	if ( is_multisite() ) {
		$msg = sprintf(
			"%s [%s]\n%s\n",
			__( 'WordPress database error:' ),
			$str,
			$this->last_query
		);

		if ( defined( 'ERRORLOGFILE' ) ) {
			error_log( $msg, 3, ERRORLOGFILE );
		}
		if ( defined( 'DIEONDBERROR' ) ) {
			wp_die( $msg );
		}
	} else {
		$str   = htmlspecialchars( $str, ENT_QUOTES );
		$query = htmlspecialchars( $this->last_query, ENT_QUOTES );

		printf(
			'<div id="error"><p class="wpdberror"><strong>%s</strong> [%s]<br /><code>%s</code></p></div>',
			__( 'WordPress database error:' ),
			$str,
			$query
		);
	}
}