这是我第一次将本地开发站点转移到另一个本地站点进行测试,并且无法访问新站点中的数据库。两台计算机都在 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);
在索引页面上,它显示了正确的用户列表。所以连接很好,其他地方有问题。你们会说我仍然需要删除复制的数据库并使用“正确”的方式(导出/导入),还是浪费时间?
最后编辑:我确实使用 Export/Import 重做了这个动作,现在一切正常。谢谢大家。