0

我想制作一个表,其中包含定义另一个表中的列的行条目。这样,如果表单的问题被更改或添加,我可以在以后轻松更新表格。

例如。

表 1:问题

Question            column_name     column_type   characters    default
What is your name?      name           Char         255           ''
When where you born?    birth          char         255           ''
What is today's date?   date           int                        ''
Do you have a pet?      pet            bin                        0   

表 2:结果

name        birth       date
Cammy      Teaneck      1988
Tommy      Tenefly      2001
Tasha      Brooklyn     1950    

在 php 表单中,检查所有列是否存在,如果不存在,则在 table2 中创建它们然后添加条目

$collect = db_query("SELECT column_name FROM {Table1}");
while ($data = db_fetch_array($collect)){

$name = $data['column_name'];
$stretch = db_query("SELECT $name FROM {Table2}");
if ($stretch == null or false){

UPDATE TABLE Table2 ($name   $type($char) DEFAULT $default)
 }
}
4

2 回答 2

1

您所要求的伪代码如下:

foreach column in table1 {
  $res = query("select column from table2");
  if( ! $res ) {
    query("alter table add field datatype(size) to table 2");
  }
}

这是一个粗略的实现,我的想法来自: http ://forums.phpfreaks.com/topic/193330-alter-table-add-column-if-not-exists-possible/

于 2013-03-21T11:24:41.953 回答
0

请使用mysql中的信息模式来检查这个表是否包含这个字段你可以在信息模式中找到表名这个使用像这样

SELECT * FROM  information_schema.COLUMNS WHERE TABLE_NAME='Table2' and COLUMN_name IN ('name','birth','date')

请试试这个

于 2013-03-21T11:28:55.683 回答