簡體   English   中英

無法創建mySQL表

[英]Failing to create mySQL table

我正在嘗試創建一個表,如果它在我的數據庫中不存在。 為此,我正在運行此測試,該測試按預期工作:

$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'");

但是當我嘗試創建表本身時出現了問題,這給了我以下錯誤:查詢問題: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''passenger' SMALLINT NOT NULL, 'booking' CHAR(6), 'seat' VARCHAR(3))' at line 2 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''passenger' SMALLINT NOT NULL, 'booking' CHAR(6), 'seat' VARCHAR(3))' at line 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM