0

Windows 8、XAMPP 1.8.1、PHP 5.4.7、および MySQL で Apache サーバーを使用しています。コードを PDO に変換することにしました。

phpinfo()を確認すると、MySQL の PDO ドライバーが有効になっているように見えますが、「ドライバーが見つかりませんでした」というエラーが表示され続けます。

コードは次のとおりです。

<?php 
//connect to database

$config['db'] = array(
    'host'           => 'localhost',
    'username'       => 'root',
    'password'       => '',
    'dbname'         => 'x'
    );

$db = new PDO("
    pdo_mysql:host=     " .$config['db']['host']. ";
    dbname=             " .$config['db']['dbname']. ";
    username=           " .$config['db']['username'].";
    password=           " .$config['db']['password']."
    ");
?>

そしてエラー:

致命的なエラー: メッセージ「ドライバーが見つかりませんでした」を含むキャッチされない例外「PDOException」

助言がありますか?

4

4 に答える 4

1

マニュアルがリンクを言うように

次のように dsn をフォーマットする必要があります。 DRIVER:host=YOURHOST;dbname=YOURDB

また、インスタンスを作成するには、次のように動作する必要があります。$db = new PDO($dsn, $username, $password)

また、言うのを忘れていました (他のユーザーが指摘したように) あなたのドライバーは "mysql" であり、pdo_mysql ではありません

于 2013-09-07T15:16:19.727 に答える
1

pdo_mysqlDSN プレフィックスをから just に変更するとどうなりますmysqlか?

于 2013-09-07T15:02:58.407 に答える
0

最終的に、コードには 2 つの問題がありました。

1. pdo_mysql -> mysql

2. ユーザー名とパスワードは、文字列ではなく変数として渡す必要があります。

正しいコードは次のとおりです。

$config['db'] = array(
    'host'           => 'localhost',
    'username'       => 'root',
    'password'       => '',
    'dbname'         => 'x'
    );

$db = new PDO (
    "mysql:host=".$config['db']['host'].";dbname=".$config['db']['dbname']."",
    $config['db']['username'], 
    $config['db']['password'] 
);
于 2013-09-07T15:53:17.107 に答える