2014-09-11 59 views
0

我只是試圖插入兩個變量到表中創建兩個新列。我可以得到一個插入正確的變量並創建一個新的列,但努力爭取第二個正確的語法。這目前的作品:改變表SQL PHP

mysqli_query($link,"ALTER TABLE importantdetails.extracols ADD `" . $newCol1 . "` VARCHAR(100)"); 

但是我不能得到$newCol2插入。我試過了我能想到的一切。

任何想法?

感謝

+3

'$ newCol2'持有什麼? '$ newCol2'的MySQL語句的結構是什麼? – 2014-09-11 10:28:20

+0

而'$ newCol2'是?.... – Sal00m 2014-09-11 10:29:06

+0

也許你的mysql用戶沒有ALTER權限 – 2014-09-11 10:37:43

回答

1

,如果你有$link無需添加數據庫名稱importantdetails嘗試

mysqli_query($link,"ALTER TABLE extracols ADD (".$newCol1." VARCHAR(100), ".$newCol2." VARCHAR(100))"); 
+0

不幸工作!這正是我認爲應該的。 – 2014-09-11 11:02:39

+0

@MatthewWarburton檢查現在更新了一些寫作錯過 – 2014-09-11 11:03:57

+0

工作過一次,謝謝! – 2014-09-11 11:07:50

2

要將多列添加到現有表時,SQL ALTER TABLE語法是:

ALTER TABLE table_name 
    ADD (column_1 column-definition, 
    column_2 column-definition, 
    ... 
    column_n column_definition); 

Ex. ALTER TABLE supplier 
    ADD (supplier_name varchar(50), 
     city varchar(45)); 
+0

嗨,謝謝是的,但這是我正在努力。我認爲這應該工作:mysqli_query($ link,「ALTER TABLE extracols ADD(」。$ newCol1。「VARCHAR(100)),」。$ newCol2。「VARCHAR(100)」); – 2014-09-11 11:03:15

+0

@MatthewWarburton嘗試mysqli_query($ link,「ALTER TABLE extracols ADD(」。$ newCol1。「VARCHAR(100),」。$ newCol2。「VARCHAR(100))」); – 2014-09-11 11:05:09

0

確保$newCol2不是MySQL reserved word,並且您正確設置其類型。如果它也是一個VARCHAR(100),我能想到的唯一問題是$newCol2是一個保留字。

如果你想在一個ALTER命令添加多個列,你可以做這樣的:

mysqli_query($link,"ALTER TABLE importantdetails.extracols ADD ('$col1' col1_def, '$col2' col2_def)); 
0

的語法應該是

mysqli_query($link,"ALTER TABLE importantdetails.extracols ADD ('".$newCol1."' VARCHAR(100), '".$newCol2."' VARCHAR(100))"); 

假設$ newCol2包含字符串名稱你想要這個列的類型是varchar(100)

+0

失蹤a)結束 – 2014-09-11 11:05:37

+0

@RakeshSharma ty,修正。 – daker 2014-09-11 11:07:02