我最近遇到了以这种方式设置的数据库。
<?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' );
?>
我理解它是如何工作的,但我从未见过像这样设置的连接,你有没有理由想以这种方式设置你的数据库?
答案 0 :(得分:1)
这是一种非常常见的情况。我创建了一个我在PHP项目中使用的MySQL类,可以从任何地方调用它来连接数据库。你可以在这里抓住它:
对于需要连接到我的数据库的任何页面,我加载一个需要该类的全局配置文件,并添加我的凭据,如
$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");