我正在尝试创建一个表,如果它在我的数据库中不存在.为此,我正在运行此测试,该测试按预期工作:
$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时我仍然有同样的错误.
任何人都可以看到我错在哪里?
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");