1

私は最近、この方法でセットアップされているデータベースに出くわしました。

<?php
ini_set( "display_errors", true );
date_default_timezone_set( "Australia/Sydney" );  // http://www.php.net/manual/en/timezones.php
define( "DB_DSN", "mysql:host=localhost;dbname=cms" );
define( "DB_USERNAME", "root" );
define( "DB_PASSWORD", "" );
define( "CLASS_PATH", "classes" );
define( "TEMPLATE_PATH", "templates" );
define( "HOMEPAGE_NUM_ARTICLES", 5 );
define( "ADMIN_USERNAME", "admin" );
define( "ADMIN_PASSWORD", "mypass" );
require( CLASS_PATH . "/Article.php" );

function handleException( $exception ) {
  echo "Sorry, a problem occurred. Please try later.";
  error_log( $exception->getMessage() );
}

set_exception_handler( 'handleException' );
?>

どのように機能するかは理解していますが、このように接続が設定されているのを見たことがありません。この方法でデータベースを設定する理由はありますか?

4

1 に答える 1

1

これは非常に一般的なシナリオです。PHP プロジェクトで使用する MySQL クラスを作成し、どこからでも呼び出してデータベースに接続できます。ここでそれをつかむことができます:

http://pastebin.com/2FrPHVLR

データベースに接続する必要があるページについては、そのクラスを必要とするグローバル構成ファイルをロードし、次のように資格情報を追加します。

$db_hostspec = 'localhost';
$db_database = 'mydb';
$db_username = 'root';
$db_password = 'MySekretPassw0rd';
$db_port = '3306';

次に、データベースに接続できます

$db = new MySQL($db_hostspec, $db_username, $db_password, $db_database);

そして、次の方法でデータベースを呼び出すことができます。

$products = $db->execute("SELECT * FROM Products");
于 2012-11-28T16:30:30.270 に答える