質問: oci_connect("KENSHU1", "KENSHU1", "XE", "AL32UTF8"); } ``` ### 試したこと 別のPHPファイルに接続処理のみを記載したが 各ファイルからそのファイルを使うことができない。 下記、質問補足内容。 (動作するようになってから時間が経っているので正しく再現できているかわかりません。申し訳ないです。) ``` require $_SERVER['DOCUMENT_ROOT'].'\test\Database.php'; // require "C:\Program Files\PHP\workspace\test\test\Database.php"; ``` 上記コードで実行するとエラーとなり、 コメントアウトしているコードで実行すると正しく動作する。 下記はエラーとなった場合のエラーメッセージ。 Warning: require(C:/Program Files/PHP/workspace\test\Database.php): failed to open stream: No such file or directory in C:\Program Files\PHP\workspace\test\Screen\login.php on line 4 Fatal error: require(): Failed opening required 'C:/Program Files/PHP/workspace\test\Database.php' (include_path='C:\xampp\php\PEAR') in C:\Program Files\PHP\workspace\test\Screen\login.php on line 4 ### 補足情報(FW/ツールのバージョンなど) PHP Version 7.3.0
回答: $_SERVERより定数*DIR*を使うべきかと。 `__DIR__`が書かれているファイルのディレクトリまでの絶対パスが入ってくるのでそこから相対パスにすると良いです。 あとディレクトリの区切りは\など環境依存のものをそのまま書くのではなく、定数DIRECTORY_SEPARATORを利用してください。 ※長いので設定ファイルなど全てのファイルから読み込まれるファイルに`define("DS",DIRECTORY_SEPARATOR );`のように短縮する定数を用意すると楽です。 ただ、今はautoloaderを採用したもののほうが主流かなと(余裕があればautoloader導入してみてください)