我想创建一个包含行条目的表,这些行条目定义了另一个表中的列。这样,如果更改或添加表单的问题,我可以在以后轻松更新表。
EG。
表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)
}
}
答案 0 :(得分: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/
答案 1 :(得分:0)
请使用mysql中的信息架构进行检查 此表是否包含此字段 你可以在information_schema中查找表名 像这样使用
SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME='Table2' and COLUMN_name IN ('name','birth','date')
请试试这个