Umzug von mysql auf PDO

SkyDevMent

Erfahrenes Mitglied
Guten Abend,
ich habe folgendes Problem da ja mit Version 5.5.0 mysql veraltet ist beginn ich jetzt gerade meine Datenbank Klassen komplett auf PDO umzustellen, nur leider ist dabei ein graviernder Fehler aufgetreten. Mit mysql habe ich ganz normal per mysql_connect() auf meine Datenbank zugegriffen, versuche ich nun mit den gleichen Daten also Username, Passwort, Host per PDO auf meine MySQL Datenbank zuzugreifen bekomme ich immer folgende Fehlermeldung
Code:
SQLSTATE[28000] [1045] Access denied for user 'username'@'localhost' (using password: YES)
PHP:
<?php
/*
* Autor: Leon Bergmann
* Datum: 31.12.2012 00:51 Uhr 
* Update:
*/
class DB extends PDO
{
    private $table;

    
    public function __construct($table)
    {
        if(empty($table))
        {
            throw new Exception("No table given",1);
        }
        else
        {
            $this->table = $table;
        }
        try
        {
            parent::__construct("mysql:localhost;port=3306;dbname=cms_main_db;","username","passwort");
        }
        catch(Exception $e)
        {
            throw new Exception($e->getMessage(),$e->getCode());
        }
    }

    public function getUserInfo()
    {
        $result = $this->exec("Select * From User");
        $result = $result->fetchAll();
        echo "<pre>";
        print_r($result);
    }
}

try{
$db = new DB("cms_main_db");
echo "<pre>";
print_r($db);
$db->getInfo();
}
catch(Exception $e)
{
    echo $e->getMessage();
}
?>


Leider kann ich mir keiner Reim darauf machen, weil es ja mit den gleichen Daten vorher funktioniert hat.
 
Zuletzt bearbeitet:
Schreib statt:
PHP:
parent::__construct("mysql:localhost;port=3306;dbname=cms_main_db;","username","passwort");

so etwas:
PHP:
parent::__construct("mysql:host=localhost;port=3306;dbname=cms_main_db;","username","passwort");

Weiß nicht, obs klappt. Aber ausprobieren könntest du es ja mal.
 
Hmm.. dann weiß ich auch nicht weiter.
Vielleicht könnte es auch einfach sein, dass du durch PDO keinen Zugriff mehr zur Datenbank hast, oder einfach nur die Daten falsch eingetragen/übertragen hast.

mfg harry
 
@saftmeister
Nein der User hat Zugriff auf die entsprechende DB, vor dem Umzug habe ich auf die gleiche DB zugegriffen.
 
Kannst du es testweise mal mit einem andern User ausprobieren? Ich tippe mittlerweile auf Unicode-Zeichen im Passwort oder Benutzernamen.

Ich hab es gerade noch mal explizit getestet:

PHP:
<?php
try
{
	$db = new PDO('mysql:host=localhost;dbname=test', 'test', '');
}
catch (PDOException $pdoex)
{
	echo $pdoex->getMessage();
}

funktioniert tadellos.

EDIT: Lass doch mal den Port weg, 3306 ist Standard.
 
Mit einem anderen User ist es kein Problem, auf meine Datenbanke zu zugreifen alledings nicht mit dem vorgesehenen User.
 

Neue Beiträge

Zurück