【发布时间】:2021-07-02 18:49:13
【问题描述】:
我想在 MySQL 中的表中添加一列。我正在使用 MySQLi,在下面的代码中,我编写了我从研究中看到的代码。如果它在 if 语句中,它还会执行吗?另外,我需要将$mysqli->query("ALTER TABLE tableName ADD ColumnName varchar(255) NOT NULL" 保留在connect() 函数中,还是在执行一次后将其删除?
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;
}
【问题讨论】:
-
您通常会使用 SQL 脚本更改表,而不是每次连接到数据库时都添加它。
-
数据库结构修改语句通常与核心应用程序逻辑分开执行,以确保您只执行一次。以 laravel 迁移为例。
-
更改表时,更改是永久性的。您只需执行一次。
-
表中是否已经有一些行?如果是这样,当您添加一个非 NULL 但没有 DEFAULT 值的新列时,您认为现有行的新列中将存储什么?