如果PDO中不存在,我已成功创建数据库。但是当我试图创建表时,它表示未知的数据库。它说未知的数据库。谢谢你的帮助。可能有一些错误
这是我的代码
<?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());
}
?>
答案 0 :(得分:1)
您的sql不正确
Middle Name VARCHAR( 250 ) NOT NULL,
|
列名
中不允许使用空格将其Middle_Name
<强>更新强>
列名中允许空格,只需在(`)
之间写入答案 1 :(得分:0)
$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");