php - PDO - 3D000 未选择数据库

标签 php mysql pdo

我想创建一个 PDO mysql 连接。但是 execute() 函数返回 false,而 errorInfo() 返回“未选择数据库!”。但是我选择了一个数据库。

这是我的代码:

    $array = array("db" => "blogscript", "host" => "localhost", "user" => "root", "pass" => "");

    $db = new PDO('mysql:dbname=' . $array['db'] . ';host=' . $array['host'] . '', $array['user'], $array['pass']);

    $statement = $db->prepare('
        SELECT *
          FROM pages
    ');

    $r = $statement->execute();
    if ($r === false) {
        return $statement->errorInfo();
    }

数据库“blogscript”存在。

最佳答案

按此顺序硬编码与数据库和主机的连接

$db = new PDO('dbname=blogscrip;mysql:host=localhost', root, pass); 

抛出异常找不到驱动程序

按照documentation中的顺序

$dbh = new PDO('mysql:host=localhost;dbname=blogscript', root, pass);

作品

将顺序更改为主机和数据库

关于php - PDO - 3D000 未选择数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14276465/

相关文章:

php - 创建zip时没有错误,但没有创建

php - WordPress - mysql_query() : Access denied for user 'www-data' @'localhost' (using password: NO) error on production server

php - 如果我有获取参数,刷新页面的按钮不起作用

mysql - 为什么这个 SQL 查询会花很长时间?

mysql - 如何在MySQL中使用group by和pivot?

database - Codeigniter PDO 集成

php在设置准备语句的try block 中执行 undefined variable

php - 如何在 php 中计算 10 天后的日期?

MySQL 对包含特殊字符的列进行全文搜索

php - MySQL Select 查询选取错误记录