フォームを送信すると、記事の情報をデータベースに渡すことができますが、画像の情報は送信されません。
トランザクションを使用しているため、1 つのフォームから 2 つのテーブルに情報を挿入できます。
これは、情報をデータベースに渡すトランザクションです。
$conn->query("START TRANSACTION");
$stmt = $conn->prepare('INSERT INTO articles(article_title, article_text, article_date) VALUES (?, ?, NOW())');
$stmt->bind_param('ss', $_POST['article_name'], $_POST['description']);
$stmt->execute();
$stmt = $conn->prepare('INSERT INTO images (article_id, image_caption, image_filename) VALUES(LAST_INSERT_ID(),?,?)');
$stmt->bind_param('ss', $_POST['image_caption'], $_FILES['upload']['name']);
$stmt->execute();
$stmt->close();
$conn->query("COMMIT");
ここに私のフォームがあります:
<form id="inputArticle" name="inputArticle" method="post" action="" enctype="multipart/form-data" >
<p> <label for="article_name">Article Title:</label> <input name="article_name" placeholder="Name of the article" id="article_name" type="text" size="50" maxlength="50" /> </p>
<p> <label for="description">Article Content:</label> <textarea name="description" placeholder="Content of the article"id="description" cols="50" rows="10"></textarea> </p>
<p> <label for="image_filename">Choose File to Upload</label><br /> <input type="file" name="image_filename" id="image_filename" /> </p>
<p> <label for="image_caption">Image Caption:</label> <textarea name="image_caption" id="image_caption" cols="50" rows="5"></textarea> </p>
<p> <input type="submit" name="insert" value="Insert New Article" /> </p>
</form>
補足: SQL とフォームから画像アップロード コードを削除すると、すべてが機能するように見えます。IDと説明はデータベースに送信されるので、問題は画像のアップロード部分にあると思います。