Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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中处理数据库表字段-使用php创建动态表_Php_Mysql_For Loop_While Loop - Fatal编程技术网

在php中处理数据库表字段-使用php创建动态表

在php中处理数据库表字段-使用php创建动态表,php,mysql,for-loop,while-loop,Php,Mysql,For Loop,While Loop,我想创建一个包含如下字段的动态表 table_name: book_list book1(int(2)) book2(int(2)).... book44(int(2) <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $conn = mysql_connect($dbhost, $dbuser, $dbpass); for($i=1;$i&l

我想创建一个包含如下字段的动态表

    table_name: book_list

    book1(int(2))   book2(int(2))....   book44(int(2)
    <?php
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = '';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    for($i=1;$i<=44;$i++){

    $sql = 'CREATE TABLE IF NOT EXISTS `book_list` (
      book_'.$i. 'int(2) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1';

    mysql_select_db('book_db');
    $retval = mysql_query( $sql, $conn );
    }
    ?>
我有一个像这样的php代码

    table_name: book_list

    book1(int(2))   book2(int(2))....   book44(int(2)
    <?php
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = '';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    for($i=1;$i<=44;$i++){

    $sql = 'CREATE TABLE IF NOT EXISTS `book_list` (
      book_'.$i. 'int(2) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1';

    mysql_select_db('book_db');
    $retval = mysql_query( $sql, $conn );
    }
    ?>

上面的代码需要做一些调整,这是为了生成动态表

任何帮助都是值得感激的

谢谢, 金兹


PS:我知道MYSQL正在贬值,但这仍然是为了我的客户,他只想要MYSQL,而不是pdo或mysqli。看起来很疯狂。但是仍然可以使用一些ORM工具,例如

但最好的选择是使用3NF数据库

将bookNo作为列添加到表中,而是添加列号

样品

CREATE TABLE IF NOT EXISTS `book_list` (
   number int(2) NOT NULL 
   book int(2) NOT NULL
)
工具书类

  • 您应该开始在for循环之外构建查询,然后在所需的字段上循环。类似于此(未经测试):

    
    
    一旦创建了表,您需要一个alter查询来添加更多的列。是的,如何?我不太喜欢php和循环。您能否帮助处理上述代码。是否要创建新表或在现有表中添加列?添加列。。我的for循环真的很糟糕。但还是。。。它们不再得到维护。看到了吗?相反,学习,并使用或-将帮助你决定哪一个。哇,哇。哇!杰出的还有一件事是。代码简直太棒了。一点零钱。更改$sql.='book.'$i.'整型(2)不为空,'to$sql.='book_uu.'$i.'int(2)不为空';