Bluescript Community
Bluescript Community

Reputation: 137

PDO mysql creating table unsuccessful

I have successfully create the database if not exists in PDO. But when I tried to create table it says unknown database. Its says unknown database. Thank you for your help guys. probably got some error

Here is my code

<?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());
     }

?>

Upvotes: 0

Views: 80

Answers (2)

Federkun
Federkun

Reputation: 36924

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

Here $database_name isn't db_airlines, but

`db_airlines`

from the previous

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

So, try to change it in:

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

Upvotes: 0

N Kumar
N Kumar

Reputation: 1312

Your sql is not correct

Middle Name VARCHAR( 250 ) NOT NULL,
      |

Space is not allowed in column name

make it Middle_Name

UPDATE

space is allowed in column name just write it in between (`)

Upvotes: 1

Related Questions