PDO mysql 创建 table 失败

PDO mysql creating table unsuccessful

如果 PDO 中不存在,我已经成功创建了数据库。但是当我尝试创建 table 时,它说未知数据库。它说未知的数据库。谢谢你们的帮助。可能有一些错误

这是我的代码

<?php

    $host='localhost'; // Host name 
    $username='root'; // Mysql username 
    $password=''; // Mysql password 
    $database_name = "db_airlines"; // Database name 
    $tbl_name="users"; // Table name


try{
        $pdo = new PDO("mysql:host=localhost", $username, $password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $database_name = "`".str_replace("`","``",$database_name)."`";
        $pdo->query("CREATE DATABASE IF NOT EXISTS $database_name");
        $pdo->query("use $database_name");

        $pdo = null;

    }catch(Exception $e){
        echo "database creation failed";
    }

    try{
         $db = new PDO('mysql:host=' . $host . ';dbname=' . $database_name, $username, $password);
         $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );//Error Handling
         $sql ="CREATE table $tbl_name(
         user_ID INT( 11 ) AUTO_INCREMENT PRIMARY KEY,
         Lastname VARCHAR( 250 ) NOT NULL, 
         Middle Name VARCHAR( 250 ) NOT NULL,
         Fistname VARCHAR( 250 ) NOT NULL, 
         Email VARCHAR( 250 ) NOT NULL, 
         Account_name VARCHAR( 250 ) NOT NULL, 
         password VARCHAR( 250 ) NOT NULL);" ;
         $db->exec($sql);
     }catch(Exception $e){
        die('error : ' . $e->getMessage());
     }

?>

你的sql不正确

Middle Name VARCHAR( 250 ) NOT NULL,
      |

Space 不允许出现在列名

成功Middle_Name

更新

列名中允许

space 只需将其写在 (`)

之间
$db = new PDO('mysql:host=' . $host . ';dbname=' . $database_name, $username, $password);

这里的 $database_name 不是 db_airlines,而是

`db_airlines`

从上一个

$database_name = "`".str_replace("`","``",$database_name)."`";

因此,尝试将其更改为:

$database_name_quoted = "`".str_replace("`","``",$database_name)."`";
$pdo->query("CREATE DATABASE IF NOT EXISTS $database_name_quoted");
$pdo->query("use $database_name_quoted");