我正在學習MySQL與PHP以及如何創建表格&插入數據。但我特別困惑的下面的代碼:mysqli:爲什麼我需要'if'語句來創建表?
//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();
所以我複製並粘貼此代碼,並在瀏覽器中運行它,然後檢查本地主機/ phpMyAdmin的果然表已創建。
然而,我然後被刪除的代碼和只跑了第1節,(第2部分& 3被刪除並且在該代碼不存在的)假設這是所有我需要創建一個表。刷新我的瀏覽器後,我的數據庫中沒有創建表。
所以我又看了一下,覺得它可能是因爲我沒有關閉連接。所以這次我插入第1節&第3節並省略第2節。
這也沒有創造出令我驚訝的表。所以這是我困惑的地方。爲什麼我需要第2節?據我所知,它只能打印出一個字符串,這只是一個小的通知給我或任何創建表的用戶,但在創建表時似乎並不重要。那麼爲什麼我不能在沒有它的情況下創建表?我很困惑!
第1只創建一個包含您的表定義,無非就是一個PHP串;它是對數據庫執行該請求的第2部分。第2節是根據第1節定義的實際工作做什麼 –
特別是'$ conn-> query($ sql)'是實際執行查詢的內容。 – cteski
第1部分只是說明,第2部分將執行這些說明。這就像一個房子計劃和房子建設,第1節只是一個計劃,第2節建立這個計劃......如果有幫助。 – samayo