php - 试图理解为什么要使用这种类型的数据库设置

标签 php mysql database pdo

<分区>

我最近遇到了以这种方式设置的数据库。

<?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' );
?>

我知道它是如何工作的,但我从未见过像这样设置的连接,您是否有理由希望以这种方式设置您的数据库?

最佳答案

这是一个很常见的场景。我创建了一个在我的 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");

关于php - 试图理解为什么要使用这种类型的数据库设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608878/

相关文章:

php - 如果没有添加文件,如何在 MySQL 数据库单元中插入 "Null"值?

php - 如何优化 SQL 查询以避免 while() 嵌套子查询?

php - 消息不会回显

mysql - for 循环中的多个变量

mysql - 匹配数据库表的整行

mysql - SQL 命令不返回行

php - PDO SQL Server 扩展间歇性故障

PHP如何找到应用程序根目录?

python - 如何在数据库(mysql)中保存波斯数字

database - 数据库记录如何存储在磁盘上?