我在localhost和远程主机dev之间进行了更改:我在localhost上测试它然后在php中将文件复制到远程。
我有一个类MYDB,它将host和user-db信息存储在常量中。 如何声明常量并编写MYDB,以便我不必在这两个访问日期之间手动切换。相反,我想自动切换。 我用:
host: localhost
user: timo
db: localhostdb
pwd: ...
host: remotehostname
user: timo
db: remotehostdb
pwd:..
在切换到localhost之前,我评论远程主机,反之亦然。这个不好。 任何的想法 ? 蒂莫
答案 0 :(得分:3)
我通过将凭据存储在config.live.php
文件中来处理这个问题,可以使用config.test.php
文件覆盖该文件。
包含配置时:
require_once(file_exists('config.test.php') ? 'config.test.php' : 'config.live.php');
我保留了版本config.live.php
和SVN忽略的config.test.php
。这样,测试文件永远不会在生产中结束,任何签出代码副本的人都可以将live.php复制到新的test.php文件并更新其测试配置。
答案 1 :(得分:2)
关于好。其他一些方法
答案 2 :(得分:2)
我是如何解决的:
类MyDB {
private static $db;
static public function getInstance($Start = false) {
if ($_SERVER['SERVER_NAME'] == 'localhost') {
/* $DB_HOST = 'localhost';
$DB_DATABASE = '';
$DB_USER = '';
$DB_PASSWORD = '';
*/
$aConnection = array('DB_HOST' => 'localhost', 'DB_DATABASE' => '', 'DB_USER' => '', 'DB_PASSWORD' => '');
} else {
$aConnection = array('DB_HOST' => 'd', 'DB_DATABASE' => '', 'DB_USER' => '', 'DB_PASSWORD' => $DB_PASSWORD);
}
if (!self::$db) {
self::$db = new PDO('mysql:host=' . $aConnection['DB_HOST'] . ';dbname=' . $aConnection['DB_DATABASE'] , $aConnection['DB_USER'], $aConnection['DB_PASSWORD'], array(PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC));
}
echo mysql_error();
if ($Start)
return $aConnection;
else #Normale pdo klasse
return self::$db;
}
}
因此,如果我需要一个正常的mysql连接,我使用数组,如果我需要PDO,我使用静态db变量。