Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建具有动态列数的表MYSQL_Php_Mysql_Sql - Fatal编程技术网

Php 如何创建具有动态列数的表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

我正在尝试在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    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;