2014-09-11 27 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