-2

この単純なファイルをブラウザで開こうとすると、次のようになります。

<?php

require_once 'classes/settings.php';

class Mysql {
    
    private $conn;
    
    function __construct() {
        
        $this->conn = new mysqli (DB_SERVER,DB_USER,DB_PASSWORD,DB_MEMBER) or die('There was a problem connecting to the database.');
        if ($this->conn->connect_errno) {
echo "Failed to connect to MySQL: (" . $this->conn->connect_errno . ") " . $this->conn->connect_error;
}
 //echo $mysqli->host_info . "\n";
    }
    
    function verify_Username_and_Pass($un, $pwd) {
        
        $query = "SELECT *
        FROM users
        WHERE username = ? AND password = ?
        LIMIT 1";
        
        if($stmt = $this->conn->prepare($query)) {
            
            $stmt->bind_param('ss',$un,$pwd);
            $stmt->execute();
            
            if($stmt->fetch()) {    
                $stmt->close();
                return true;
            }
        }
    }
}
 ?>

この警告エラーが表示されます:

Warning: require_once(classes/settings.php): failed to open stream: No such file or 
directory in /var/www/classes/Mysql.php on line 3 Fatal error: require_once(): Failed 
opening required 'classes/settings.php' (include_path='.:/usr/share/php:/usr/share/pear') 
in /var/www/classes/Mysql.php on line 3

理由がわからない、ファイルsetting.phpがそのフォルダにあるので、何が問題なのですか?


編集

これを別のファイルで同じようにすると、たとえば次のようになります。

<?php 
require_once 'classes/settings.php';


 $host = "localhost";
 $user = "root";
 $pass = "pass";

 $databaseName = "membership";
 $tableName = "users";

 //--------------------------------------------------------------------------
 // 1) Connect to mysql database
 //--------------------------------------------------------------------------

 $con = mysql_connect($host,$user,$pass);
 $dbs = mysql_select_db($databaseName, $con);

 //--------------------------------------------------------------------------
 // 2) Query database for data
 //--------------------------------------------------------------------------
 $result = mysql_query("SELECT * FROM $tableName");            //query
 $array = mysql_fetch_row($result);                          //fetch result    

 //--------------------------------------------------------------------------
 // 3) echo result as json 
 //--------------------------------------------------------------------------
 echo json_encode($array);

?>

このように、問題なく動作します。この2番目のコードではすべてが動作するため、ファイルとパスが正しい理由がわかりません。

4

3 に答える 3

5

スクリプト はvar/www/classes/Mysql.php、既にclasses ディレクトリにあります。含めているファイルは同じディレクトリにあります。を削除しclasses/て使用します。

require_once 'settings.php';
于 2012-10-18T14:11:59.547 に答える
4

あなたはすでにclassesフォルダーにいるので、2つのオプションがあります

最初のオプションは、相対パスを使用することです

require_once 'settings.php';

2 番目のオプションは、絶対パスを使用することです

require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/settings.php'

于 2012-10-18T14:12:01.690 に答える
0

使ってみて$_SERVER['DOCUMENT_ROOT']

require_once ($_SERVER['DOCUMENT_ROOT'] . '/classes/settings.php');
于 2012-10-18T14:14:59.330 に答える