私はPHPでMySQLを学習しており、テーブルを作成するには&データを挿入します。しかし、私は次のコードについて混乱特に午前: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のと表が作成された十分な確認を確認しました。
しかし、これは私がテーブルを作成するために必要なすべてであったと仮定すると、私は、コードを削除し、のみSECTION 1、(2 & 3が削除された部分とコードには存在しない)を実行しました。私のブラウザを更新した後、私のデータベースのテーブルは作成されませんでした。
私はもう一度見て考えました。おそらく、私は接続を閉じなかったためです。今度は、私はセクション1 &セクション3を挿入し、セクション2は除外しました。
これは私の驚きにテーブルを作成しませんでした。これは私が混乱しているところです。なぜセクション2が必要なのですか?私が読むことができる限り、それは文字列を出力します。これは、私やテーブルが作成されたユーザーには小さな通知ですが、テーブルの作成には不可欠ではありません。それで、なぜ、それなしでテーブルを作成できないのですか?私は混乱しています!
第1節は、あなたのテーブル定義、それ以上何を含むPHPの文字列を作成します。それはデータベースに対してその要求を実行するセクション2です。セクション2は、セクション1で定義されているものに基づいて実際の作業を行うものです。 –
特に、 '$ conn-> query($ sql)'は実際にクエリを実行しているものです。 – cteski
セクション1は命令のみ、セクション2はそれらの命令を実行します。それは、家のプランと家のようなものです。セクション1はプランだけです。セクション2は、このプランを作成します。 – samayo