gcdb::print_error()

最后更新于:2021-11-26 09:03:04

gcdb::print_error( string$str=”)

Prints SQL/DB error.

参数

$str

(string) (Optional) The error to display.

Default value: ”

响应

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

源文件

文件: gc-includes/gc-db.php

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

		if ( ! $str ) {
			if ( $this->use_mysqli ) {
				$str = mysqli_error( $this->dbh );
			} else {
				$str = mysql_error( $this->dbh );
			}
		}
		$EZSQL_ERROR[] = array(
			'query'     => $this->last_query,
			'error_str' => $str,
		);

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

		gc_load_translations_early();

		$caller = $this->get_caller();
		if ( $caller ) {
			/* translators: 1: Database error message, 2: SQL query, 3: Name of the calling function. */
			$error_str = sprintf( __( 'GeChiUI database error %1$s for query %2$s made by %3$s' ), $str, $this->last_query, $caller );
		} else {
			/* translators: 1: Database error message, 2: SQL query. */
			$error_str = sprintf( __( 'GeChiUI 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;
		}

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

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

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