将网站移动到另一个本地主机进行尝试 - 没有错误,但没有显示数据

时间:2012-04-29 15:11:22

标签: php mysql xampp

这是我第一次将本地开发站点转移到另一个本地站点进行测试,无法访问新站点中的数据库。两台计算机都在Mac上运行XAMPP。测试站点已成功安装XAMPP,并已将数据库文件放在Applications / XAMPP / xamppfiles / var / mysql下。测试用户可以启动Apache和MySQL,并在PHPMyAdmin中查看数据库文件。测试用户还可以访问本地网站而不会显示错误消息。

编辑:数据库文件是通过复制/压缩我的文件,并在测试端解压缩/删除复制的文件而复制的。

但是,本地网站似乎没有看到数据库。应该返回数据的页面只显示默认的“抱歉,我们已售罄”消息或显示“未找到图像”图形,并且管理员无法登录。

索引页面调用

include_once "common/base.php";

组成
<?php
// Set the error reporting level
error_reporting(E_ALL);
ini_set("display_errors", 1);

// Start a PHP session   
session_start();
$_SESSION['docroot'] = $_SERVER['DOCUMENT_ROOT'] . '/mysite/';

// Include site constants
include_once $_SERVER['DOCUMENT_ROOT'] . "/inc/constants.inc.php";

    if ( !isset($_SESSION['token']) )
{
    $_SESSION['token'] = md5(uniqid(rand(), TRUE));
    $_SESSION['token_time'] = time();
}

// Create a database object
try {
    $dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME;
    $_db = new PDO($dsn, DB_USER, DB_PASS);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
    exit;
}
?>

如果存在连接问题,我希望看到返回一条错误消息,我可以通过将inc / constants.inc.php中的常量更改为伪值来验证。所以我不相信存在连接问题。

如果你在我的位置,你会检查什么?

编辑:我刚刚在PHPMyAdmin中发现了导出功能。我将尝试删除复制过的db文件,从PHPMyAdmin导出文件,然后在测试机器中导入它们。

编辑:我刚刚让测试机做了一个简单的

$sql = "SELECT FirstName From users";

    $stmt = $_db->prepare($sql);
    $stmt->execute();
    $aaData = array();

    while($row = $stmt->fetch(PDO::FETCH_NUM)){
    $aaData[] = $row;
    }

    $stmt->closeCursor();

print_r($aaData);

在索引页面上,它显示正确的用户列表。所以连接很好, 其他地方也有问题。您是否都会说我仍然需要删除复制的数据库并使用“正确”方式(导出/导入),还是浪费时间?

最终编辑:我使用导出/导入重做了移动,现在一切正常。谢谢大家。

1 个答案:

答案 0 :(得分:2)

首先,在mysql数据目录中压缩文件并移动它们并不是最好的方法。如果你在移动它们之前完全刷新/关闭了mysql服务器,它可以工作。你最好使用mysqldump或类似的工具一次移动整个数据库。

听起来像你移动了应用程序的数据库文件,但是你可能忘了将用户/密码凭据添加到新的MySQL设置中。您提到使用phpMyAdmin,因此当您在另一台计算机上登录时,请单击“权限”选项卡,并确保它与您的开发计算机上的“权限”选项卡匹配。

如果不是这样,那么通过压缩和复制文件完全可能是某些/所有表都被破坏了。尝试使用phpMyAdmin的导出和导入功能来移动数据库。如果数据非常大,请告诉我,我可以给你一些命令行条目来运行。

希望这有帮助。