我试图在mysql中创建表。
$column_str
存储了列的名称。
如果我们有3列,它将是$columns_str="123"
,4列 - > $columns_str="1234"
所以,我需要使用变量$ columns_str创建表。
此代码创建包含1列的table1:" 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"。
帮助,谢谢!
答案 0 :(得分:2)
要创建一个包含三个名为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;
答案 1 :(得分:1)
您无法创建包含动态列的表格,但您可以使用此类表格进行模拟
ID FIELD VALUE
1 ID 4345
1 NAME PAUL
1 SURNAME SMITH
2 ID 4346
2 NAME MARC
2 SURNAME BROWN
该表的PK是ID,FIELD 添加一个新字段相当于添加一个新行。
因此添加字段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