0

学ぼうとしているPDO

データベースに接続するためにこのコードを作成しました

<?php
$dbhost = "localhost";
$dbname = "testcreate";
$dbuser = "root";
$dbpass = "mysql";

    if (!$db) {
        throw new Exception('failed to connect to mysql')
    }

try {
$db = new PDO('mysql:host='.$dbhost.';dbname='.$dbname.';charset=utf8', ''.$dbuser.'', ''.$dbpass.'');

    } catch (MyFunkyException $e) {
        echo "Caught exception : ", $e->getMessage();
}
?>

接続は機能しますが、エラーを発生させようとしてエラーをキャッチしたい場合

このエラーポップアップ

Fatal error: Uncaught exception 'Exception' with message 'failed to connect to mysql' in C:\Program Files (x86)\Ampps\www\test.php:8 Stack trace: #0 {main} thrown in C:\Program Files (x86)\Ampps\www\test.php on line 8

エラーの修正を手伝ってくれますか、それとも正しい方法を教えてくれますか

4

4 に答える 4

0

問題は、何も捕まえたくないということです。
少なくとも、エラーメッセージをエコーアウトするだけにするまでは。

また、例外は PDO 構文とは関係ありません。

于 2013-07-04T05:43:13.167 に答える
-1

ここでの本当の問題は、次の行にあります。

} catch (MyFunkyException $e) {

MyFunkyExceptionキャッチする例外の種類のクラス名です。PDO は例外
をスローしません。ドキュメントには、例外をスローすると記載されています。MyFunkyExceptionPDOException

次のように行を変更することで、これを修正できます。

} catch (PDOException $e) {

または、次のように、タイプに関係なくすべての例外をキャッチします。

} catch (Exception $e) {
于 2013-07-04T00:37:02.853 に答える