php - 无法创建 mySQL 表

标签 php mysql

我正在尝试创建一个表,如果它不存在于我的数据库中。为此,我正在运行这个按预期工作的测试:

$conn = mysql_connect("localhost", "twa222", "twa222bg");
mysql_select_db("airline222", $conn) or die ("Database not found " . mysql_error() );
$val = mysql_query("SELECT 1 from '$FLIGHTID'");

但是,当我尝试自己创建表时出现了问题,这给了我以下错误: 查询问题:您的 SQL 语法有误;检查与您的 MySQL 服务器版本对应的手册,了解在第 2 行的“passenger”SMALLINT NOT NULL、“booking”CHAR(6)、“seat”VARCHAR(3))'附近使用的正确语法

这是试图生成表格的代码

if(!$val)
{
    $sql = "CREATE TABLE ".$FLIGHTID." (
    passenger SMALLINT NOT NULL PRIMARY KEY,
    booking CHAR(6), seat VARCHAR(3) )";
    $rs = mysql_query($sql) or die ("Problem with query" . mysql_error());
}
mysql_close($conn);

我最初以为是“.$FLIGHTID”。那是导致问题的原因,但是当我将其更改为简单的 ABC 时,我仍然遇到相同的错误。

谁能看出我哪里出错了?

编辑: 使用 ABC 时我的 SQL 输出是:

CREATE TABLE ABC ( passenger SMALLINT NOT NULL PRIMARY KEY, booking CHAR(6), seat VARCHAR(3) )

不使用 ABC 是:

CREATE TABLE ( passenger SMALLINT NOT NULL PRIMARY KEY, booking CHAR(6), seat VARCHAR(3) )

最佳答案

您在列名周围使用单引号是不允许的。单引号表示里面的值是斜体字:

改变:

$val = mysql_query("SELECT 1 from '$FLIGHTID'");

到:

$val = mysql_query("SELECT 1 from $FLIGHTID");

使用 mysqli_*PDO 而不是弃用的 mysql_* API。

关于php - 无法创建 mySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30612154/

相关文章:

PHP require 语句 - 失败,但抛出 E_WARNING 而不是 E_COMPILE_ERROR

php - Magento:更改配置选项而不保存

php - 其他语言上的 C 指针等效项

c# - 合并两个数据库表的 LINQ 代码?

mysql - 如何在 Google App 脚本中使用 SUBSTRING?

php - 用户照片库的 MySQL 设计

mysql - 导入一系列包含一个字段的 .CSV 文件,同时在其他字段中添加额外的 'known' 数据

php - 表jquery中元素的总和

php - pg_num_rows 错误

php - 获取具有逗号分隔值的多维数组中的条目计数 - php