Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php &引用;PDO_构造:未知数据库名“;错误_Php_Mysql_Pdo - Fatal编程技术网

Php &引用;PDO_构造:未知数据库名“;错误

Php &引用;PDO_构造:未知数据库名“;错误,php,mysql,pdo,Php,Mysql,Pdo,专家们 这一定是我编码生涯中最令人沮丧的经历 我正试图使用PDO连接到我的数据库 我使用mysqli成功地完成了这项工作,但使用PDO,我收到以下错误消息: 致命错误:未捕获的异常“PDOException”带有消息 中的'SQLSTATE[HY000][1049]未知数据库'myDBName,host=localhost' C:\xampp\htdocs\closures\forms\final.php:51堆栈跟踪:#0 C:\xampp\htdocs\closures\forms\fina

专家们

这一定是我编码生涯中最令人沮丧的经历

我正试图使用
PDO
连接到我的数据库

我使用
mysqli
成功地完成了这项工作,但使用
PDO
,我收到以下错误消息:

致命错误:未捕获的异常“PDOException”带有消息 中的'SQLSTATE[HY000][1049]未知数据库'myDBName,host=localhost' C:\xampp\htdocs\closures\forms\final.php:51堆栈跟踪:#0 C:\xampp\htdocs\closures\forms\final.php(51): PDO->_构造('mysql:dbname=di…','myusername','mypassword',', 数组)#1{main}在上的C:\xampp\htdocs\closures\forms\final.php中抛出 第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.
而不是

2.另外,数据库名称不正确(它必须是
myDB
),因为您说过
$conn=mysqli\u connect(“localhost”、“myusername”、“mypass”、“myDB”)
工作正常

$pdo = new PDO("mysql:dbname=myDB;host=localhost","mysusername","mypass",array(PDO::ATTR_PERSISTENT => true));
通常,DSN由PDO驱动程序名称、冒号和PDO驱动程序特定的连接语法组成

您应该使用分号,而不是逗号 是这样的:

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

如果您也在这样做,请不要混合使用任何其他mysql api。顺便说一句,您在这里遗漏了一些内容。例如手册中的$dbh=newpdo('mysql:host=localhost;dbname=test',$user,$pass)使用
在数据库名和主机之间
myDB
!==
myDBname
Life Pro提示:为了避免沮丧,请始终阅读错误消息。有人说,
“未知数据库‘myDBName,host=localhost’”
非常具有启发性。这个答案不应该被否决。编辑:我也不能诚实地说另一个不是我的。@Fred ii-事实上,我的意图和注意力集中在他面临的主要问题上,那就是
异常。我不认为投反对票有任何意义,我也不理解投我反对票的人的见解:“非常感谢你们的帮助。错误消失了,我现在可以连接到数据库了。作为记录,这是我第一次从网上看到的所有例子中看到分号而不是逗号,包括我在这里看到的例子。@Tairoc很高兴能帮助你。