我最近将带有MYSQL数据库的网站迁移到了新服务器。 问题是旧服务器使用的是子域名,配置文件仍然指向sub.domain。我尝试了很多方法,但无法连接数据库。
我认为问题是数据库仍在尝试使用sub.domain名称。而不是新服务器上的新域。我尝试删除对WHERE subdomain =的引用,但我仍然无法连接到数据库。
任何帮助将不胜感激。在下面配置文件信息。
<?php
// Database settings
$database = array();
$database['host'] = "localhost";
$database['user'] = "***********";
$database['password'] = "***********";
$database['database'] = "***********";
#echo "<h1>".$_SERVER['SERVER_NAME']."</h1>";die();
define('SITE_MAIN', 'dessinsllcportal.com');
if (!(mysql_connect($database['host'], $database['user'], $database['password'])))
crash_q();
if (!(mysql_select_db($database['database'])))
crash_q();
mysql_query("SET NAMES 'utf8'");
$ref = explode('.', $_SERVER['SERVER_NAME']);
$query = "SELECT * FROM sites WHERE subdomain='".$ref[0]."'";
if (($result = mysql_query($query)))
{
$dbRow = mysql_fetch_assoc($result);
define('FM_HOST', $dbRow['host']);
define('FM_FILE', $dbRow['file']);
define('SITE_URL', 'http://'.$dbRow['subdomain'].SITE_MAIN);
}else{
define('FM_HOST', '');
define('FM_FILE', '');
define('SITE_URL', 'http://'.$dbRow['subdomain'].SITE_MAIN);
}
define('FM_USER', 'PHPuser');
define('FM_PASS', 'inter10r');
define('USER_LAYOUT', 'PHP_User');
define('SMARTY_DIR', '/var/www/clients/client120/web138/web/smarty/');
define('APP_FULL_PATH', '/var/www/clients/client120/web138/web');
答案 0 :(得分:1)
从错误消息中,您似乎忘记移动定义函数crash_q()
的文件,或者可能意外删除了包含定义它的文件,或者可能意外地从代码中删除了其定义。跟踪定义crash_q()
的位置,并确保代码中的定义可用。如果找不到,可以添加
function crash_q()
{
die("Fatal error:".mysql_error());
}
事实上,如果您的旧crash_q()
信息量不大,那么您现在应该使用这个进行调试(但是为了安全起见,将其更改为登录到文件一旦一切正常)。然后看看MySQL的错误是什么,并从那里开始。