mysqli 和 php 添加列

mysqli and php adding columns in

我想在 MySQL 内的 table 中添加一列。我正在使用 MySQLi 并且在下面的代码中,我写了一段我从研究中看到的代码。如果它在 if 语句中,它还会执行吗?另外,我需要在 connect() 函数中保留 $mysqli->query("ALTER TABLE tableName ADD ColumnName varchar(255) NOT NULL" 还是只在执行一次后删除它?

function connect()
    {
        require_once 'Constants.php';

        // Connecting to mysql database
        $this->conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);

        // Check for database connection error
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }

        if (!$mysqli->query("ALTER TABLE tableName ADD ColumnName varchar(255) NOT NULL")) {
            echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
        }
        // returing connection resource
        return $this->conn;
    }

Would it still execute if it was in the if statement?

显示了两个“if”语句。第一个与成功的连接有关,并且其中没有 ALTER TABLE 查询,所以我假设您不是那个意思。但是:如果你这样做了......它只会在连接成功时执行,显然。

第二条语句作为 if 语句的一部分执行,实际上在 if 语句之前,因此 if 语句可以评估 sql 查询的输出是真还是假。所以是的,它将在 if 语句中执行。

Would I need to keep the $mysqli->query("ALTER TABLE tableName ADD ColumnName varchar(255) NOT NULL" in the connect() function or would I just erase it after executing it one time?

如果您每次都创建一个新的 table 并且要求每次 运行 您的应用程序都添加这个 column/field,那么它每次都需要在那里。然而,这将是一种不寻常的情况。如果您不是每次都创建新的 table,而您已经创建了那个 column/field,则此查询将失败,因为您无法添加相同的字段两次。这将是一种测试 column/field 是否已经创建的方法,但还有其他方法不会导致 mysql 错误。