【问题标题】:Error while trying to create database with PHP PDO [duplicate]尝试使用 PHP PDO 创建数据库时出错 [重复]
【发布时间】:2017-11-02 12:07:47
【问题描述】:

我是 PDP PDO 的新手,这是我创建名为“title”的数据库的代码

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "CREATE DATABASE title";
    // use exec() because no results are returned
    $conn->exec($sql);
    echo "Database created successfully<br>";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage(); // THIS IS LINE NUMBER 17
    }

$conn = null;
?>

但这是我在尝试运行脚本时遇到的错误

Notice: Undefined variable: sql in C:\xampp\htdocs\website\database\createdb.php on line 17

SQLSTATE[HY000] [1049] Unknown database 'myDB'

怎么了?

【问题讨论】:

  • $sql = "CREATE DATABASE title";移到try {上方
  • @Epodax 抱歉,这是“myDB”而不是电影。我编辑了问题。
  • 我从 w3schools 得到这个代码,他们应该没有任何错误。
  • 是的错误不适合它可能在$conn = new PDO("mysql:host=$servername;dbname=movie", $username, $password);
  • 顺便说一句;您是要创建数据库还是表?这里有两种不同的动物。

标签: php mysql pdo


【解决方案1】:

您连接到此处不存在的数据库:

$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);

删除数据库名:

$conn = new PDO("mysql:host=$servername", $username, $password);

【讨论】:

  • 这个成功了,谢谢。但我从 w3schools.com 获得了代码。它确实是一个非常好的网站。是他们的错??
  • @RahulSharma 没有看到代码我不能说
  • @RahulSharma 不,这是你的错。您正在尝试访问一个不存在的数据库。
  • 但是页面显示“使用 PDO 创建数据库”,为什么他们编写代码来访问数据库?我们可以在数据库中创建数据库吗?
【解决方案2】:

您在第 7 行收到 SQL 错误,因为您尝试访问尚不存在并引发异常的 myDB

您收到未定义变量错误,因为 try 语句中的代码在将 $sql 分配给任何内容之前失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-28
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2021-06-28
    • 1970-01-01
    相关资源
    最近更新 更多