web-dev-qa-db-ja.com

PHPを介してHTMLフォームデータをSQLデータベースに送信する(mysqliを使用)

Htmlフォームに入力されたデータをsqlデータベースに送信します。つまり、特定の値を特定の列に関連付ける新しい行を作成します。同様の質問があることは知っていますが、答えを読みましたが、何もうまくいかないようです。

send_post.php

<?php
//Connecting to sql db.
$connect = mysqli_connect("my Host","my user","my passwrod","my db");
//Sending form data to sql db.
mysqli_query($connect,"INSERT INTO posts (category, title, contents, tags)
VALUES ('$_POST[post_category]', '$_POST[post_title]', '$_POST[post_contents]', '$_POST[post_tags]')";
?>

post.html#form

<form onSubmit="send_post.php" method="post">
    <h3>Category:</h3>
    <input type="text" name="post_category">
    <h3>Post title:</h3>
    <input type="text" name="post_title">
    <h3>Post tags (a,b,c...):</h3>
    <input type="text" name="post_tags">
    <h3>Post (use html):</h3>
    <textarea rows="20" cols="50" name="post_contents"></textarea>
    <input type="submit">
</form>

私のdb "posts"テーブル列:

pid
title
contents
tags
category

pidにはauto_increment オン

私はすでに、pidを含むすべての列に、「正しい」順序で値を送信しようとしました。

mysqli_connect一部は、動作する私の別の.phpファイルからコピーしたため、問題ではありません。

サーバーのphp-sql互換性も問題ではありません。別の.phpファイルでdbからデータ(手動で挿入されたデータ)を取得することに成功したためです。

13
Alex

これを変える

<form onSubmit="send_post.php" method="post">

<form action="send_post.php" method="post">
15
Yogesh Suthar
$connect = mysqli_connect("my Host","my user","my password","my db");

すべてのスペルミスを修正することを忘れないでください。何が間違っているのかわからない場合は面倒になる可能性があります。 (パスワードとしてパスワードのスペルミス)

0
Kosmic