テストのためにローカル開発サイトを別のローカル サイトに転送するのはこれが初めてで、新しいサイトのデータベースにアクセスできません。両方のコンピューターが Mac で XAMPP を実行しています。テスト サイトは XAMPP を正常にインストールし、Applications/XAMPP/xamppfiles/var/mysql にデータベース ファイルを配置しました。テスト ユーザーは、Apache と MySQL を起動し、PHPMyAdmin でデータベース ファイルを表示できます。テスト ユーザーは、エラー メッセージなしでローカル Web サイトにアクセスすることもできます。
編集:データベースファイルは、私の側でファイルをコピー/圧縮し、テスト側でコピーされたファイルを解凍/ドロップすることでコピーされました。
ただし、ローカル Web サイトにはデータベースが表示されないようです。データを返すはずのページに、デフォルトの「申し訳ありませんが、売り切れました」というメッセージが表示されるか、「画像が見つかりません」というグラフィックが表示されるだけで、管理者はログインできません。
インデックスページ呼び出し
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);
インデックス ページでは、ユーザーの正しいリストが表示されます。接続は良好で、別の場所に問題があります。コピーしたデータベースを削除して「正しい」方法(エクスポート/インポート)を使用する必要があると言うでしょうか、それとも時間の無駄ですか?
最終編集: エクスポート/インポートを使用して移動をやり直しましたが、現在はすべて正常に機能しています。ありがとうございます。