私は次のように離れたホストに接続しようとします:
class Singleton {
public static $connection;
public static function getConnection(){
if(self::$connection==null){
$dsn = 'mysql:dbname=gtrscrpt_ubot;';
$user = 'MyUser';
$password = 'MyPassword';
try {
self::$connection = new PDO('mysql:host=gator188.hostgator.com;port=2983;dbname=gtrscpt_ubot;',$user,$password );
self::$connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
return self::$connection;
}
}
Singleton::getConnection();
私はこれを手に入れます:
Connection failed: SQLSTATE[HY000] [2006] MySQL server has gone away
問題は、コードが間違っているのか、実際にサーバーに接続できないのかわからないことです(ただし、接続する必要があることはわかっています)
更新: 接続に失敗しました:SQLSTATE [HY000][2000]mysqlndは古い安全でない認証を使用してMySQL4.1以降に接続できません。管理ツールを使用して、コマンドSET PASSWORD = PASSWORD('your_existing_password')でパスワードをリセットしてください。これにより、新しい、より安全なハッシュ値がmysql.userに保存されます。このユーザーがPHP5.2以前で実行される他のスクリプトで使用されている場合は、my.cnfファイルからold-passwordsフラグを削除する必要がある場合があります**