Reputation: 137
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
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
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