2017-02-25 3 views
-2

Experten,„PDO_Construct: Unknown database“ Fehler

Das hat die frustrierende Erfahrung meines Codierung Leben.

Ich versuche nur eine Verbindung zu meiner DB mit PDO.

ich es mit mysqli erfolgreich mache aber mit PDO, ich die folgende Fehlermeldung erhalten:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1049] Unknown database 'myDBName,host=localhost'' in C:\xampp\htdocs\closures\forms\final.php:51 Stack trace: #0 C:\xampp\htdocs\closures\forms\final.php(51): PDO->__construct('mysql:dbname=di...', 'myusername', 'mypassword', Array) #1 {main} thrown in C:\xampp\htdocs\closures\forms\final.php on line 51

I db Name für Sicherheit geändert.

Hier Verbindungszeichenfolge:

$pdo = new PDO("mysql:dbname=myDBname,host=localhost","mysusername","mypass",array(PDO::ATTR_PERSISTENT => true)); 

Das perfekt msqli mit gearbeitet:

$conn = mysqli_connect("localhost","myusername","mypass","myDB"); but I am using PDO because I am using PDO because it allows me to use array but because of this error, I am unable to test to see if my array works. 

Ihre Hilfe wird sehr geschätzt.

+1

http://php.net/manual/en/pdo.connections.php und intermix keine andere mysql api wenn das, was Sie auch tun. Du hast hier etwas ausgelassen. Beispiel aus dem Handbuch '$ dbh = new PDO ('mysql: host = localhost; dbname = test', $ user, $ pass);' –

+1

benutze ';' zwischen dbname & host – gaurav

+1

'myDB'! ==' myDBname' –

Antwort

0

1. ; statt , benötigt zwischen dbname und Host

2.Also Datenbankname nicht korrekt ist (es müssen myDB sein) Wie Sie gesagt haben, dass $conn = mysqli_connect("localhost","myusername","mypass","myDB") fein arbeitet.

$pdo = new PDO("mysql:dbname=myDB;host=localhost","mysusername","mypass",array(PDO::ATTR_PERSISTENT => true)); 
+0

Vielen Dank für Ihre Hilfe. Der Fehler ist weg und ich kann jetzt eine Verbindung zur db herstellen. Für die Aufzeichnung, das ist das erste Mal, dass ich Semikolon anstelle von Komma von allen Beispielen sah, die ich online sah einschließlich der, die ich hier sah. – Tairoc

+0

@Tairoc froh, Ihnen zu helfen. –

2

In general, a DSN consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax.

sollten Sie ein semi-colon verwenden kein comma.
Es würde so aussehen:

$pdo = new PDO("mysql:dbname=myDB;host=localhost","mysusername","mypass",array(PDO::ATTR_PERSISTENT => true)); 
+2

Diese Antwort hat keinen Downvote verdient. Edit: noch eine andere, die ich ehrlich sagen kann, ist nicht meine. –

+0

db Name ist hier falsch. Lass mich das korrigieren. –

+0

@Anant vielen Dank für die Korrektur meines Fehlers. – TechJS

Verwandte Themen