没有数据库名称的 Pdo 连接?

2022-08-30 19:53:50

我正在尝试创建一个CMS,我想让我的客户生活更轻松,所以我自己创建数据库。我在尝试执行此操作时遇到了问题。未创建数据库,因此我无法使用 PDO 连接进行连接,并且已弃用,因此我无法使用它。对于如何在创建数据库之前创建 PDO 连接,您有什么建议吗?喜欢替代方案?mysqlmysql_select_db()


答案 1

你可以通过以下方式启动PDO连接,如果我错了,请纠正我:

$db = new PDO("mysql:host=localhost", 'user', 'pass');

与此与正常连接的区别在于 移除的部分 ,如您所见。dbname=[xx]

当您想要使用 UTF-8 连接时,还有一个免费的提示:

$db = new PDO("mysql:host=localhost;charset=utf8mb4", 'user', 'pass');

为了注释,您可以通过以下方式选择数据库:Yehonatan

$db->exec('USE databaseName');

答案 2

只需放下零件:dbname=

try {
    $pdo = new PDO("mysql:host=localhost;", "user", "pass");
    $stmt = $pdo->query("SHOW DATABASES");
    var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
}
catch (PDOException $e) {
    echo $e->getMessage();
}

给我

array(11) {
  [0]=>
  array(1) {
    ["Database"]=>
    string(18) "information_schema"
  }
  [1]=>
  array(1) {
    ["Database"]=>
    string(5) "cdcol"
  }
  [2]=>
  array(1) {
    ["Database"]=>
    string(5) "chica"
  }
  [3]=>
  array(1) {
    ["Database"]=>
    string(9) "downloads"
  }
  [4]=>
  array(1) {
    ["Database"]=>
    string(5) "mysql"
  }
  [5]=>
  array(1) {
    ["Database"]=>
    string(18) "performance_schema"
  }
  [6]=>
  array(1) {
    ["Database"]=>
    string(10) "phpmyadmin"
  }
  [7]=>
  array(1) {
    ["Database"]=>
    string(8) "rishumon"
  }
  [8]=>
  array(1) {
    ["Database"]=>
    string(4) "test"
  }
  [9]=>
  array(1) {
    ["Database"]=>
    string(5) "users"
  }
  [10]=>
  array(1) {
    ["Database"]=>
    string(7) "webauth"
  }
}

不出所料。


推荐