PHP PDO 〜invalid data source name〜

invalid data source name

表題のエラーが出てすごく困っていました。
下のようにコードを作成し最後のnew PDOの部分でエラーになるので「おかしい!」と悩んでいました。
参考サイトPHPマニュアル

$dns = 'mysql:host=localhost;dbname=testdb';
$username = 'user';
$password = 'pass';
$driver_options = [
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $username, $password, $driver_options);

解決

スペスミスでした(笑)

$dns = 'mysql:host=localhost;dbname=testdb';
$pdo = new PDO($dsn, $username, $password, $driver_options);

わかりづらいのですが、「$dns」と「$dsn」で間違っていたのでコンストラクタにから文字が渡されていました。。。

解決方法

以下のようにtry〜catchでエラーとレースを出力しました。

} catch(Exception $e) {
    print($e->getTraceAsString());
}

これでエラーの詳細が出力されるので一発で解決できました。

エラー出力、ハンドリングはちゃんとやりましょう(笑)

でわでわ。。。



カテゴリーAjax

コメントを残す