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");
如果 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");