【发布时间】:2015-04-29 13:27:46
【问题描述】:
我对 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');
与 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 吗?
我完全不明白问题出在哪里。有人会有想法吗?
【问题讨论】:
-
错误很明显:
No database selected!!所以验证你的数据库的名称。 -
我验证了我的数据库的名称,我发现它是正确的,谢谢
-
不知道您的 CPanel 主机上的 MySQL 主机和数据库名称是什么以及它们是否与您的 DSN 中的参数匹配(
PDO构造函数的第一个参数),这是不可能回答的。 -
@user3714770 也尝试验证您的主机,我认为对于共享主机,通常是
localhost。 -
@akmozo 非常感谢它与 localhost 一起使用 :) 但 localhost 它不适用于本地机器!