0
$hostname_MYDB = "192.168.0.5";
$database_MYDB = "mydb";
$username_MYDB = "root";
$password_MYDB = "test";

try {
    $MYDBPDO = new PDO("mysql:host=".$hostname_MYDB.";dbname=".$database_MYDB, $username_MYDB, $password_MYDB);
    $MYDBPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    $MYDBPDO->setAttribute(PDO::ATTR_TIMEOUT, 1);
} catch (PDOException $ex) {
    echo "unable to connect to mysql server";
}

これをmysqlサーバーのシャットダウンで実行しましたが、機能していないようです。ページがロードされ続けます(接続しようとしています)。

それが違いを生む場合、mysqlサーバーはWindowsで実行されています。phpも同様です。

4

3 に答える 3

0

このような初期化中に属性をパラメーターとして渡す必要がありました

$MYDBPDO = new PDO("mysql:host=".$hostname_MYDB.";dbname=".$database_MYDB, $username_MYDB, $password_MYDB, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_TIMEOUT => 1)); 

後で setattribute を使用しないでください。

于 2013-09-20T13:39:18.913 に答える
0

コンストラクターは、データベース ソース (DSN と呼ばれる) を指定するためのパラメーターと、必要に応じてユーザー名とパスワード (存在する場合) を指定するためのパラメーターを受け入れます。マニュアルを参照してください。DSN はmysql:host=localhostANDで構成されdbnameます。

あなたの場合。

"mysql:host=$hostname_MYDB;dbname=$database_MYDB"

それ以外の

$MYDBPDO = new PDO("mysql:host=".$hostname_MYDB.";dbname=".$database_MYDB, $username_MYDB, $password_MYDB);

試す

$MYDBPDO = new PDO("mysql:host=$hostname_MYDB;dbname=$database_MYDB", $username_MYDB, $password_MYDB);
于 2013-09-20T13:54:28.807 に答える