Php 如何创建具有动态列数的表MYSQL
我正在尝试在mysql中创建表。 有Php 如何创建具有动态列数的表MYSQL,php,mysql,sql,Php,Mysql,Sql,我正在尝试在mysql中创建表。 有$column\u str存储列的名称 如果我们有3列,它将是$columns\u str=“123”,4列->$columns\u str=“1234” 所以,我需要使用变量$columns\u str创建表 此代码创建表1,其中有一列:“123”: 我需要有3列的表格:“1”,“2”,“3” 请帮忙,谢谢 您不能创建包含动力学列的表,但可以使用类似这样的表来模拟它 ID FIELD VALUE 1 ID 4345 1 NA
$column\u str
存储列的名称
如果我们有3列,它将是$columns\u str=“123”
,4列->$columns\u str=“1234”
所以,我需要使用变量$columns\u str创建表
此代码创建表1,其中有一列:“123”:
我需要有3列的表格:“1”,“2”,“3”
请帮忙,谢谢 您不能创建包含动力学列的表,但可以使用类似这样的表来模拟它
ID FIELD VALUE
1 ID 4345
1 NAME PAUL
1 SURNAME SMITH
2 ID 4346
2 NAME MARC
2 SURNAME BROWN
该表的主键是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
当您有一个变量
$columns\u str=“123”
时,要创建一个包含三列的表,分别命名为1
、2
和3
,您可以使用类似的方法
<?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;")
$column_str总是“123”??无论你在做什么,你都是做错了。请注意,我回答了你标题中暴露的内容。如何创建具有动态列数的表。从你的答案中可以看出你的问题是不同的。它类似于:“如何从php动态创建mysql表”(标准表,而不是具有动态列数的表)是的,我们可以在sql中创建动态列。我们使用PIVOT函数在sql中创建动态列。如何使用标准sql?请检查此链接是否是一种视图。。。或者是否可以从透视表中插入删除更新记录?这不是动态表。这是一个使用动态php代码创建的静态表。基本上,创建的表是静态的。
<?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;")
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;