-3

エラーが見つかりました: 次のスクリプトでドライバーが見つかりませんでした。私は今、しばらく頭を悩ませていますが、私のせいかもしれません。

これは私のコードです:

class ConnectStation {
  private $host = "localhost";
  private $DatabaseType = "mysql";
  private $database = array (
    1 => "Database_one",
    2 => "Database_two",
    3 => "Database_true"
);
private $user1 = "MyUsername1";
private $pass1 = "MyPassword1";
private $user2 = "MyUsername2";
private $pass2 = "MyPassword2";

public function ConnectDB($user, $database){
if ($database==""){$database=1;}
try{
    switch ($user){
       case "ReadOnly":
       $connection = new PDO("'".$this->DatabaseType.":host=".$this->host.";dbname=".$this->database[$database]."', '".$this->user1."', '".$this->pass1."'");
       $connection->exec('SET CHARACTER SET utf8');
       return $connection;
       break;
       case "Admin":
       $connection = new PDO("'".$this->DatabaseType.":host=".$this->host.";dbname=".$this->database[$database]."', '".$this->user2."', '".$this->pass2."'");
       $connection->exec('SET CHARACTER SET utf8');
       return $connection;
       break;
       }
    }
catch(PDOException $e){
    echo $e->getMessage();
    }
}
}

これまでのところ、データベースに送信するクエリに使用するスクリプトよりも接続がわかりました。コードは次のようになります。

$userCard = new ConnectStation;

$query = "SELECT username FROM users";
foreach ($this->ConnectDB('ReadOnly', 1)->query($query) as $row){
echo $row['username']."<br>";
}

ヘルプまたはアドバイスを歓迎しますか?

4

1 に答える 1

0

PDO コンストラクターへの呼び出しは、不要な引用符と奇妙な引数の順序で完全に台無しになっています。ただ行う:

$dsn = sprintf('%s:host=%s;dbname=%s', $this->DatabaseType, $this->host, $this->database[$database]);
$connection = new PDO($dsn, $this->user1, $this->pass1);
于 2013-03-04T11:08:02.590 に答える