[英]How to create a table in mysql where the number of fields in the table equals the number of columns in the excel file in php?
[英]How to create table with dynamic number of columns MYSQL
我正在尝试在mysql中创建表。 有$column_str
存储列的名称 。
如果我们有3列, $columns_str="123"
,4列 - > $columns_str="1234"
所以,我需要使用变量$ columns_str创建表。
此代码创建table1,其中包含1列:“123”:
$columns_str="123"; $table_name = table1;
$connection->query("CREATE TABLE `kcup`.`$table_name` ( `$columns_str` TEXT NOT NULL ) ENGINE = InnoDB;")
我需要有3列的表:“1”,“2”,“3”。
请帮助,谢谢!
要创建具有三列命名表1
, 2
和3
,当你有一个变量$columns_str="123"
,你可以使用这样的事情;
<?php
$columns_str="123";
$table_name = 'table1';
$cols = str_split($columns_str);
$colQuery = '`id` int(11) NOT NULL AUTO_INCREMENT,';
foreach($cols as $col)
{
$colQuery .= "
`$col` TEXT NOT NULL,";
}
$colQuery .= "
PRIMARY KEY (`id`)";
$connection->query("CREATE TABLE `kcup`.`$table_name` ( $colQuery ) ENGINE = InnoDB;")
这将运行以下SQL命令;
CREATE TABLE `kcup`.`table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`1` TEXT NOT NULL,
`2` TEXT NOT NULL,
`3` TEXT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE = InnoDB;
您不能使用动态列创建表,但可以使用类似这样的表来模拟它
ID FIELD VALUE
1 ID 4345
1 NAME PAUL
1 SURNAME SMITH
2 ID 4346
2 NAME MARC
2 SURNAME BROWN
该表的PK是ID,FIELD Addyng一个新字段相当于添加一个新行。
因此添加字段EMAIL相当于添加两行(一行用于PAUL,一行用于MARC),您将拥有以下记录
ID FIELD VALUE
1 ID 4345
1 NAME PAUL
1 SURNAME SMITH
2 ID 4346
2 NAME MARC
2 SURNAME BROWN
1 EMAIL paul.smith@email.com
2 EMAIL marc.brown@email.com
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.