Mysql - PDO错误 - 目录名称无效:1046未选择数据库

Ben*_*nss 4 php mysql pdo cpanel

我有PDO的问题,我看不到他来的地方.我无法质疑我的MySQL数据库.只是为了测试我使用了下面的代码(之前配置的连接参数非常糟糕:

try {
    $dbh= new PDO('mysql:host=serverName;dbname=Mydatabase','user','password');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e) {
    die('Erreur : ' . $e->getMessage());
}

var_dump($dbh);    // gives : object(PDO)#1 (0) { }

$res=$dbh->query('SELECT * FROM table');
Run Code Online (Sandbox Code Playgroud)

与MySQL正确连接,但在查询后我收到此错误:

致命错误:未捕获异常'PDOException',消息'SQLSTATE [3D000]:无效的目录名称:1046未选择数据库'在/home/outout/public_html/file.php:16堆栈跟踪:#0/home/outout/public_html/file.php(16):PDO-> query('select*from t ...')#1 {main}在第16行的/home/outout/public_html/file.php中抛出.

该代码适用于本地计算机,但只要我将其置于联机状态(cPanel),它就会向我显示此错误.我是否必须在.htaccess中配置PDO?

我绝对不明白问题出在哪里.有人会有想法吗?

小智 10

帮助Mysql解析句柄.

代替:

$res=$dbh->query('SELECT * FROM table');
Run Code Online (Sandbox Code Playgroud)

尝试:

$res=$dbh->query('SELECT * FROM Mydatabase.table');
Run Code Online (Sandbox Code Playgroud)


小智 5

我遇到了同样的问题,但没有提及带有“mysql”的“host”字符串(mysql:host)。我通过以下代码解决了该问题。

$dsn="mysql:host=localhost;dbname=dbname";
$pdo = new PDO($dsn,"root","");
Run Code Online (Sandbox Code Playgroud)