0

MACBOOKで実行されているMySQLとの接続を開こうとすると、次のエラーが発生します。

警告:mysql_connect():[2002] 15行目の/Users/Eugene/Sites/website/includes/database.phpにそのようなファイルまたはディレクトリ(unix:///var/mysql/mysql.sock経由で接続しようとしています)がありません警告:mysql_connect():15行目の/Users/Eugene/Sites/website/includes/database.phpにそのようなファイルまたはディレクトリはありません注意:未定義の変数:/Users/Evgeny/Sites/website/includes/database.phpの接続16行目データベース接続に失敗しました:そのようなファイルまたはディレクトリはありません

私の定数は次のとおりです。

defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER') ? null : define("DB_USER", "eugene");
defined('DB_PASS') ? null : define("DB_PASS", "password"); // no comments please :)
defined('DB_NAME') ? null : define("DB_NAME", "maindb");

私が接続しようとする方法は次のとおりです。

$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) // if no connection - die
{
    die("Database connection failed: " . mysql_error());
}
else // if there is a connection, then go and select a database
{
    $db_select = mysql_select_db(DB_NAME, $connection);
    if(!$db_select) // if no database selected - die
    {
        die("Database selection failed: " . mysql_error());
    }
}

助けてください、

前もって感謝します。

4

4 に答える 4

2

$ this-> connection = mysql_connect(DB_SERVER、DB_USER、DB_PASS);

最初の問題は、mysqldがクライアントと同じソケットパスを使用していないことです。127.0.0.1を介してアクセスしてみてから、「showvariables」を実行してソケットが配置されている場所を見つけます。PHP構成を適切に更新します。

if(!$ connection)

ただし、接続は「$connection」ではなく「$this->connection」に配置します

于 2012-06-19T22:01:54.277 に答える
0

u'がクラスから$connectionを呼び出している場合は、if(!$ this-> connection){.....}を入力するか、そうでない場合は、if(!$ connection){.....}を入力します。

于 2012-06-19T22:04:15.847 に答える
0

$thisローカル変数を介してインスタンス変数を設定していますが、テストしています。他に変更がないと仮定すると、コードは次のようになります。

$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$connection) // if no connection - die
{
    die("Database connection failed: " . mysql_error());
}

それを試してみてください!

于 2012-06-19T22:00:11.117 に答える
0

クラス変数とローカル変数を混合しています。$this->connectionと同じではありません$connection

于 2012-06-19T22:00:20.627 に答える