Automattic\WooCommerce\Database\Migrations\CustomOrderTable

PostsToOrdersMigrationController::db_query()privateWC 1.0

Execute a database query and log any errors.

Метод класса: PostsToOrdersMigrationController{}

Хуков нет.

Возвращает

true|false. True if the query succeeded, false if there were errors.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->db_query( $query, $supress_errors ): bool;
$query(строка) (обязательный)
The SQL query to execute.
$supress_errors(true|false)
Whether to suppress errors.
По умолчанию: false

Код PostsToOrdersMigrationController::db_query() WC 8.7.0

private function db_query( string $query, bool $supress_errors = false ): bool {
	$wpdb = WC()->get_global( 'wpdb' );

	try {
		if ( $supress_errors ) {
			$suppress = $wpdb->suppress_errors( true );
		}
		// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
		$wpdb->query( $query );
		if ( $supress_errors ) {
			$wpdb->suppress_errors( $suppress );
		}
	} catch ( \Exception $exception ) {
		$exception_class = get_class( $exception );
		$this->error_logger->error(
			"PostsToOrdersMigrationController: when executing $query: ($exception_class) {$exception->getMessage()}, {$exception->getTraceAsString()}",
			array(
				'source'    => self::LOGS_SOURCE_NAME,
				'exception' => $exception,
			)
		);
		return false;
	}

	$error = $wpdb->last_error;
	if ( '' !== $error ) {
		$this->error_logger->error(
			"PostsToOrdersMigrationController: when executing $query: $error",
			array(
				'source' => self::LOGS_SOURCE_NAME,
				'error'  => $error,
			)
		);
		return false;
	}

	return true;
}