2017-02-25 17 views
-2

專家,「PDO_Construct:Unknown databasename」error

這是我的編碼生活中最令人沮喪的經歷。

我只是想用PDO連接到我的數據庫。

我與mysqli成功地這樣做,但與PDO,我收到以下錯誤消息:

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

我爲安全改變數據庫名。

這裏是連接字符串:

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

這工作完全使用msqli:

$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. 

你的幫助是極大的讚賞。

+1

http://php.net/manual/en/pdo.connections.php不要混用任何其他MySQL API,如果這是你還做什麼。你在這裏遺漏了一些東西。從手冊'$ dbh = new PDO'('mysql:host = localhost; dbname = test',$ user,$ pass);' –

+1

';'dbname&host – gaurav

+1

'myDB'!=='myDBname' –

回答

0

1. ;而不是, dbname和主機

2.Also數據庫名稱之間需要的是不正確(它必須myDB)正如你說,$conn = mysqli_connect("localhost","myusername","mypass","myDB")工作正常。

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

非常感謝你的幫助。 錯誤消失了,我現在可以連接到數據庫了。 爲了記錄,這是我第一次在網上看到的所有例子中看到分號而不是逗號,包括我在這裏看到的例子。 – Tairoc

+0

@Tairoc很樂意幫助你。 –

2

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

您應該使用semi-colon不是comma
這將是這樣的:

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

這個答案不值得讚賞。編輯:也沒有另一個我可以誠實地說,不是我的。 –

+0

db名稱在這裏是錯誤的。讓我糾正它。 –

+0

@安南非常感謝你糾正我的錯誤。 – TechJS

相關問題