gcdb::select()

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

gcdb::select( string$db, resource|null$dbh=null)

Selects a database using the current database connection.

参数

$db

(string) (Required) MySQL database name.

$dbh

(resource|null) (Optional) link identifier.

Default value: null

源文件

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

	public function select( $db, $dbh = null ) {
		if ( is_null( $dbh ) ) {
			$dbh = $this->dbh;
		}

		if ( $this->use_mysqli ) {
			$success = mysqli_select_db( $dbh, $db );
		} else {
			$success = mysql_select_db( $db, $dbh );
		}
		if ( ! $success ) {
			$this->ready = false;
			if ( ! did_action( 'template_redirect' ) ) {
				gc_load_translations_early();

				$message = '<h1>' . __( 'Can&#8217;t select database' ) . "</h1>n";

				$message .= '<p>' . sprintf(
					/* translators: %s: Database name. */
					__( 'We were able to connect to the database server (which means your username and password is okay) but not able to select the %s database.' ),
					'<code>' . htmlspecialchars( $db, ENT_QUOTES ) . '</code>'
				) . "</p>n";

				$message .= "<ul>n";
				$message .= '<li>' . __( 'Are you sure it exists?' ) . "</li>n";

				$message .= '<li>' . sprintf(
					/* translators: 1: Database user, 2: Database name. */
					__( 'Does the user %1$s have permission to use the %2$s database?' ),
					'<code>' . htmlspecialchars( $this->dbuser, ENT_QUOTES ) . '</code>',
					'<code>' . htmlspecialchars( $db, ENT_QUOTES ) . '</code>'
				) . "</li>n";

				$message .= '<li>' . sprintf(
					/* translators: %s: Database name. */
					__( 'On some systems the name of your database is prefixed with your username, so it would be like <code>username_%1$s</code>. Could that be the problem?' ),
					htmlspecialchars( $db, ENT_QUOTES )
				) . "</li>n";

				$message .= "</ul>n";

				$message .= '<p>' . sprintf(
					/* translators: %s: Support forums URL. */
					__( 'If you don&#8217;t know how to set up a database you should <strong>contact your host</strong>. If all else fails you may find help at the <a href="https://docs.gechiui.com/classes/gcdb/select/%s">GeChiUI Support Forums</a>.' ),
					__( 'https://gechiui.org/support/forums/' )
				) . "</p>n";

				$this->bail( $message, 'db_select_fail' );
			}
		}
	}