gpt4 book ai didi

php - mysqli:为什么我需要一条 'if' 语句来创建表?

转载 作者:可可西里 更新时间:2023-11-01 08:03:31 25 4
gpt4 key购买 nike

我正在使用 PHP 学习 MySQL 以及如何创建表和插入数据。但我对以下代码特别困惑:

//SECTION 1
$sql = "CREATE TABLE ingredients (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
quanity INT(6) NOT NULL,
package INT(6) NOT NULL,
item VARCHAR(50),
cost DECIMAL(18,2),
store VARCHAR(50),
reg_date TIMESTAMP
)";

//SECTION 2
if ($conn->query($sql) === TRUE) {
echo "Table ingredients created successfully";
} else {
echo "Error creating table: " . $conn->error;
}

//SECTION 3
$conn->close();

所以我复制并粘贴了这段代码并在我的浏览器中运行它,然后检查了 localhost/phpmyadmin 并确保创建了 TABLE。

但是,我随后删除了代码并且只运行了第 1 节,(第 2 节和第 3 节被删除并且不存在于代码中)假设这就是我创建表所需的全部内容。刷新浏览器后,我的数据库中没有创建任何表。

于是我又看了一眼,想,可能是我没有关闭连接的缘故。所以这次我插入了第 1 节和第 3 节,并省略了第 2 节。

令我惊讶的是,这也没有创建表格。所以这就是我感到困惑的地方。为什么我需要第 2 部分?据我所知,它只打印出一个字符串,这对我或任何用户来说只是一个小通知,表明已创建表,但它在创建表时似乎并不重要。那么,为什么没有它我不能创建表呢?我很困惑!

最佳答案

问题是您缺少if ($conn->query($sql) === TRUE) { ... }问题是您缺少$conn->query($sql)

$conn->query($sql) 是一个函数,如果成功则返回 TRUE。通过对该函数调用 if,您可以在一行中运行它并检查其返回值,而不是将它们分成两行。

因此,即使您不想运行 if 语句,您仍然需要在其自己的行上运行 $conn->query($sql) .

关于php - mysqli:为什么我需要一条 'if' 语句来创建表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41727585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com