0

PHPスクリプトについてはわかりません。iPhone開発者です。iPhoneアプリでApplePushNotificationを有効にしたい。チュートリアルhttp://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2をフォローしています。ターミナルからpush.phpファイルを実行しているときに、push_development.logファイルで次のエラーが発生します。

ターミナルコマンド:

unknownc42c032e8297:~ creagx$ cd /Users/creagx/Desktop/PushChatServer
unknownc42c032e8297:PushChatServer creagx$ php push/push.php development

push_development.logファイルのエラーメッセージ:

2012-05-14T10:17:14+05:30 Push script started (development mode)
2012-05-14T10:17:14+05:30 Exiting with fatal error: exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /Users/gopi/Desktop/PushChatServer/push/push.php:82
Stack trace:
#0 /Users/gopi/Desktop/PushChatServer/push/push.php(82): PDO->__construct('mysql:host=loca...', 'gopipush', 'uH4q9xQGNAuFW...', Array)
#1 /Users/gopi/Desktop/PushChatServer/push/push.php(36): APNS_Push->__construct(Array)
#2 {main}

このコマンドを通過する値を知りたいですか?

// Create a connection to the database.
        $this->pdo = new PDO(
            'mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], 
            $config['db']['username'], 
            $config['db']['password'],
            array());

        writeToLog('PDO Value: ' . $this->pdo);

を使用してログファイルにPDO値を出力しようとしましたwriteToLog('PDO Value: ' . $this->pdo);。誰かがpdo値を知る方法を教えてもらえますか?前もって感謝します。

編集:

// Create a connection to the database.
        $this->pdo = new PDO(
            'mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], 
            $config['db']['username'], 
            $config['db']['password'],
            array());

        writeToLog('Host: ' . $config['db']['host']);
        writeToLog('DataBase: ' . $config['db']['dbname']);
        writeToLog('Username: ' . $config['db']['username']);
        writeToLog('Password: ' . $config['db']['password']);

再びログファイルに同じエラーメッセージが表示されます。[ writeToLog('Host: ' . $config['db']'ホスト']); 行は、行のエラーが修正されるまでコンパイルされません$this->pdo。それが正しいか?私を助けてください。前もって感謝します。

4

1 に答える 1

0

PDOはクラスです...var_dumpを使用して、そのメンバー変数を検査できます。var_dumpは直接出力するため、次のように出力バッファリングでキャッチできます。

ob_start();
var_dump($this->PDO);
writeToLog('PDO state: ' . ob_get_contents());
ob_end_clean();

正直なところ、それはおそらく同じくらい簡単です:

writeToLog('Host: ' . $config['db']['host']);
writeToLog('DB: ' . $config['db']['dbname']);
writeToLog('username: ' .  $config['db']['password']);
writeToLog('Password: ' . $config['db']['password']);

これはすべて、それが作成した動作関数であると想定してwriteToLogいます。そうでない場合は、echo代わりに。

于 2012-05-14T05:24:19.797 に答える