-3

この例は、基本を超えたlyndaphpからのものです

config.php

<?php
    defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
    defined('DB_USER')   ? null : define("DB_USER", "root");
    defined('DB_PASS')   ? null : define("DB_PASS", "");
    defined('DB_NAME')   ? null : define("DB_NAME", "photo_gallery");
?>

database.php

<?php
require_once('config.php');

class MySQLDatabase {

private $connection;

function __construct(){
    $this->open_connection();
}

public function open_connection(){
    $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
    
    if (!$this->connection) {
        die("Database connection failed: " . mysql_error());
    } else {
        $db_select = mysql_select_db(DB_NAME, $this->connection);
        
        if (!$db_select) {
            die("Database selection failed: " . mysql_error());
        }
    }
}

public function close_connection(){

    if(isset($this->connection)) {
        mysql_close($this->connection);
        unset($connection);
    }
}

public function query($sql) {
    $result = mysql_query($sql, $this->connection);
    $this->confirm_query($result);
    return $result;
}



private function confirm_query($result){
    if (!$result) {
        die("Database query failed: " . mysql_error());
    }   
}
}

$database = new MySQLDatabase();

?>

index.php

<?php
    require_once("../includes/database.php");

    if (isset($database)) {
        echo "true";
    } else {
        echo "false";
    }

?>

ここで、index.phpをブラウザで実行しようとすると、エラーエラーが発生します。

非推奨:参照によるnewの戻り値の割り当ては、80行目のC:\ xampp \ php \ PEAR\Config.phpで非推奨になりました。

非推奨:参照によるnewの戻り値の割り当ては、166行目のC:\ xampp \ php \ PEAR\Config.phpで非推奨になりました。

注意:未定義の定数DB_SERVERの使用-13行目のC:\ xampp \ htdocs \ photo_gallery \ include\database.phpで「DB_SERVER」と見なされます

注意:未定義の定数DB_USERの使用-13行目のC:\ xampp \ htdocs \ photo_gallery \ include\database.phpで「DB_USER」と見なされます

注意:未定義の定数DB_PASSの使用-13行目のC:\ xampp \ htdocs \ photo_gallery \ include\database.phpで「DB_PASS」と見なされます

警告:mysql_connect()[function.mysql-connect]:php_network_getaddresses:getaddrinfoが失敗しました:そのようなホストは不明です。13行目のC:\ xampp \ htdocs \ photo_gallery \ contains\database.phpにあります

警告:mysql_connect()[function.mysql-connect]:[2002] php_network_getaddresses:getaddrinfoが失敗しました:そのようなホストは不明です。(tcp:// DB_SERVER:3306経由で接続しようとしています)13行目のC:\ xampp \ htdocs \ photo_gallery \ contains\database.phpにあります

警告:mysql_connect()[function.mysql-connect]:php_network_getaddresses:getaddrinfoが失敗しました:そのようなホストは不明です。13行目のC:\ xampp \ htdocs \ photo_gallery \ contains \ database.phpでデータベース接続に失敗しました:php_network_getaddresses:getaddrinfoに失敗しました:そのようなホストは不明です。

config.phpの名前を変更してエラーを修正しました

それで、なぜ私がこのエラーを受け取ったのかという私の質問がありますか?config.phpファイル名は問題ですか?基本を超えたLyndaphpのビデオチュートリアルでは、このエラーは発生しませんでした。

4

2 に答える 2

1

ローカル構成に何らかのエラーがあります。おそらく、サードパーティのPEARがインストールされているため、エラーメッセージが表示されます。

非推奨:参照によるnewの戻り値の割り当ては、166行目のC:\ xampp \ php \ PEAR\Config.phpで非推奨になりました。

このエラーメッセージは古いコードの兆候であるため、システムで使用するパッケージとライブラリを修正する必要があります(非推奨)。個人的には、WindowsでXAMPPを使用しており、プロジェクトconfig.phphtdocsフォルダーにもこのようなエラーはありません。問題は、リンクされたファイルが用であるということです。私のシステムでは、166行目は次のようになっています。

$this->container = new Config_Container('section', 'root');

config.phpは、構成ファイルを呼び出すための従来の一般的な名前であり、問​​題はありません。この名前のままにしておくと、名前を変更するだけで修正できるセキュリティ上の障壁が低くなりません。

プロジェクトが構成ファイルのロードに成功すると、その他のエラーは修正されます。また:

警告:

mysql_*関数を使用して新しいコードを記述しないでください。それらはもはや維持されておらず、コミュニティは非推奨プロセスを開始しています。赤いボックスが表示されますか?

代わりに、プリペアドステートメントについて学び、 PDOまたはMySQLiのいずれかを使用する必要があります。この記事では、使用するAPIの決定について詳しく説明します。PDOの場合、ここに優れたチュートリアルがあります。

于 2012-08-08T11:32:57.477 に答える
0

同じディレクトリに「config.php」と「Config.php」ファイルが存在することが原因である可能性があります。Windows では、ファイル名の大文字と小文字は区別されません。Linuxでは、そうです。

于 2012-08-08T11:28:28.763 に答える