PHP PDO:无法连接,目录名称无效

问题描述:

我正在尝试在主机上设置一个新站点(主机路由,如果它很重要),但是当我尝试使用PDO时(我正在尝试的第一个PDO站点),我一直收到此错误消息:

I am trying to set up a new site on my hosting (Host route if it matters) but i keep getting this error when i try using PDO (first PDO site im trying):

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in /home/kennyi81/public_html/gamersite/login.php:36 Stack trace: #0 /home/kennyi81/public_html/gamersite/login.php(36): PDOStatement->execute() #1 {main} thrown in /home/kennyi81/public_html/gamersite/login.php on line 36

当我使用这些设置时:

$dbh = new PDO("mysql:91.146.107.11;dbname=kennyi81_gamersite", "kennyi81_gamer", "***************");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

....

$stmt = $dbh->prepare('SELECT * FROM USERS WHERE ID = :id LIMIT 1');

数据库的布局方式:

我能够在其他子域/主站点上使用mysqli connect fine,但我只是无法使PDO正常工作.

I am able to use mysqli connect fine on my other sub domains / main site, but i just cannot get PDO to work.

我已经尝试过了,我已经看到了:

I've tried this, which i have seen around:

 $stmt = $dbh->prepare('SELECT * FROM gamersite.USERS WHERE ID = :id LIMIT 1');

但它会重新调整语法错误.

but it retuns a syntax error.

任何人都不知道是什么原因造成的吗?

Anyone have any idea what may be causing this?

这一切都在我的本地服务器上进行,上传时除了连接线没有任何变化.

This is all working on my local server, nothing changed on upload apart from connect line.

而不是:

$dbh = new PDO("mysql:91.146.107.11;dbname=kennyi81_gamersite", "kennyi81_gamer", "***************");

尝试:

$dbh = new PDO("mysql:host=91.146.107.11;dbname=kennyi81_gamersite", "kennyi81_gamer", "***************");

(添加 host = )

它最有可能在您的本地服务器上运行,因为您在那里有mysql:localhost...mysql:127.0.0.1...并且被忽略了(因为它也缺少了 host = ),默认情况下它是本地主机.

And it most likely works on your local server, because you have mysql:localhost... or mysql:127.0.0.1... there and it's ignored (cause it's missing host= aswell) and by default it's localhost.