【问题标题】:Error: SQLSTATE[HY000] [1049] Unknown database错误:SQLSTATE[HY000] [1049] 未知数据库
【发布时间】:2016-09-01 17:56:27
【问题描述】:

我最近一直在做一些初学者的 php 练习,遇到了一个我不知道是什么原因造成的错误。

上面写着

“错误:SQLSTATE[HY000] [1049] 未知数据库'otkrica'”

sql 文件正确命名为“otkrica”,我的 db.php 如下所示:

<?php 
$dsn = "mysql:host=127.0.0.1;charset=utf8;dbname=otkrica";

try{

$pdo = new PDO($dsn,"root","");
  }catch(PDOException $e){
    die("Error: " . $e->getMessage());
  }
?>

我非常感谢您对此提供意见。我错过了什么?

【问题讨论】:

  • 你真的创建了一个名为otkrica的数据库吗?
  • 确保您安装的 mysql 不超过一个。尝试设置您正在使用的端口,例如:mysql:host=localhost;port=3307;dbname=testdb
  • 是的,我做到了。它在我的项目根文件夹中,db.php 在 root/core 文件夹中。
  • 这不是我说的。在您的数据库客户端中查看您的 mysql 服务器安装的端口,并将其设置在您的“dsn”字符串中
  • 做到了。谢谢!

标签: php mysql pdo


【解决方案1】:

在 cmets 中找到了正确答案(感谢 cmnardi)。发布为任何人的明确答案:

Set the port you are using like: mysql:host=localhost;port=3307;dbname=testdb

【讨论】:

    【解决方案2】:

    我解决了这个问题等等这样

    $connect = new PDO($dsn, $user, $pass);
    $connect->exec("SET character_set_connection = 'utf8'");
    $connect->exec("SET NAMES 'UTF8'");
    

    <?php
        $server="localhost";
        $user="root";
        $pass="";
        $dbname="clicksite";
        
        $dsn="mysql:host=$server;dbname=$dbname";
        try{
        $connect=new PDO($dsn,$user,$pass);
        $connect->exec("SET character_set_connection = 'utf8'");
        $connect->exec("SET NAMES 'UTF8'");
        }catch(PDOException $error) {
        
            echo "unable to connect".$error->getMessage();
        
        }
    ?>
    

    注意:作为 wampserver ver2.5 用于在服务器中构建数据库 运行 wampserver 后,在通知栏的图标上单击左键,然后单击 phpmyadmin 并创建数据库。

    【讨论】:

    • 请勿发布图片作为问题的答案。
    猜你喜欢
    • 2020-02-08
    • 2018-09-24
    • 2020-10-21
    • 2016-02-14
    • 2014-07-29
    • 1970-01-01
    • 2021-07-25
    • 2021-12-03
    • 1970-01-01
    相关资源
    最近更新 更多