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)