我一直在使用这个相同的代码,现在使用这个新项目,我无法连接到我的数据库。它在同一台服务器上运行,而在旧服务器上运行。
事实上,我甚至从旧项目中将此信息复制并粘贴到我的新项目中,替换了密码和用户名字段以匹配此项目,并且它不起作用。
代码是:
<?php
$host = 'localhost';
$dbname = '';
$user = '';
$pass = '';
$db = new PDO('mysql:host='.$host.';dbname='.$dbname.'', $user, $pass);
?>
我收到此错误:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory'
它会有什么不同?我不明白。它与diff中的其他项目位于同一个根目录中。夹。
--root
-- project 1
-- project 2
答案 0 :(得分:0)
错误可能在数据库名称中。 您可以在不使用数据库名称的情况下创建PDO。下面的代码列出了数据库。
try{
$dsn = "mysql:host=localhost";
$dbh = new PDO($dsn, $user, $pass);
$stmt ="SHOW DATABASES";
foreach($dbh->query($stmt) as $row){
echo $row['Database'];
echo"<br>";
}
}
catch(PDOException $e) {
echo $e->getMessage() ;
}
PS检查名称中的前导空格