我想创建一个表,其中包含定义另一个表中的列的行条目。这样,如果更改或添加表单的问题,我可以稍后轻松更新表格。
。
表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
表二:结果
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)
}
}
您所请求的伪代码如下:
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/
请使用mysql中的信息模式进行检查表中是否包含该字段您可以在information_schema this中找到表名使用Like this
SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME='Table2' and COLUMN_name IN ('name','birth','date')
Please try this