且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

向MYSQL表中添加新列后,在PHP中编辑表数据

更新时间:2022-04-04 18:50:12

下面是一个带有我的表的示例:

Here's an example with a table of mine:

<table>
    <tr>

<?php
$mysqli = new mysqli("localhost", "user", "pass", "test");
/*
 * CREATE TABLE `test` (
 `col1` int(11) NOT NULL,
 `col2` int(11) NOT NULL
... // until col5
 */
$query = "SELECT column_name FROM information_schema.columns 
    WHERE table_name = 'test' AND table_schema = 'test'";
$result = $mysqli->query($query);

// INSERT INTO `test`.`test` (`col1`, `col2`, `col3`, `col4`, `col5`)
// VALUES ('10', '11', '12', '13', '14'), ('15', '16', '17', '18', '10');

$query2 = "SELECT * FROM test";
$result2 = $mysqli->query($query2);


while ($row = $result->fetch_assoc()) {

    ?>
        <td><?=$row['column_name'];?></td>

<?php
}
?>
        </tr>
        <tr>

        <?php
 while ($res = $result2->fetch_assoc()) {

    $count_columns = $result->num_rows;

        for ($i = 1; $i <= $count_columns; $i++) {
     ?>
        <td><?=$res['col'.$i.''];?></td>
        <?php
        }
        ?>
        </tr>
        <tr>
<?php

 }






输出:


Output:

col1    col2    col3    col4    col5
 10     11      12       13     14
 15     16      17       18     10

这并不知道列名及其计数。它们具有相同的前缀 col就足够了。

That's without knowing the column names and their count. It's enough they have the same prefix "col".

添加了新列之后:

    ALTER TABLE `test` ADD `col6` INT NOT NULL 
    UPDATE test SET col6 = col1+1

相同的代码(不做任何更改)产生:

The same code (without any change) produces:

col1    col2    col3    col4    col5    col6
 10     11      12       13     14      11
 15     16      17       18     10      16

PS:我仍然不鼓励这种表结构,您需要动态地添加列

P.S.: I'm still not encouraging this table structuring, where you need to add columns dynamicly