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服务器版本对应的手册,以便在”乘客’附近使用正确的语法SMALLINT NOT NULL,’预订’CHAR(6),’seat’VARCHAR(3))’在第2行

这是尝试生成表的代码

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(乘客SMALLINT NOT NULL PRIMARY KEY,预订CHAR(6),座位VARCHAR(3))

不使用ABC它是:

CREATE TABLE(乘客SMALLINT NOT NULL PRIMARY KEY,预订CHAR(6),座位VARCHAR(3))

解决方法:

你使用单引号arround列名是不允许的.单个qoutes表示里面的值是一个litaral:

更改:

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

至:

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

使用MysqLi_ *或PDO代替不推荐使用的MysqL_ * API.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...