web-dev-qa-db-de.com

Senden Sie HTML-Formulardaten über PHP (mit mysqli) an die SQL-Datenbank.

Ich möchte die in ein HTML-Formular eingegebenen Daten an meine SQL-Datenbank senden, d. H. Eine neue Zeile erstellen, die bestimmten Spalten bestimmte Werte zuordnet. Ich weiß, dass es ähnliche Fragen gibt, ich lese die Antworten, aber nichts scheint zu funktionieren.

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>

meine db "posts" tabellensäulen:

pid
title
contents
tags
category

pid hat auto_increment an

Ich habe bereits versucht, Werte an alle Colunes zu senden, einschließlich pid, und zwar in der "richtigen" Reihenfolge.

Der mysqli_connect-Teil ist nicht das Problem, da ich ihn aus einer anderen .php-Datei von mir kopiert habe, die funktioniert.

Die Server-PHP-SQL-Kompatibilität ist nicht das Problem, da ich erfolgreich eine andere .php-Datei hatte, um Daten aus der Datenbank abzurufen (Daten, die manuell eingefügt wurden).

13
Alex

ändere das

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

zu

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

Vergessen Sie nicht, alle Rechtschreibfehler zu korrigieren. Es kann schwierig sein, wenn Sie nicht wissen, was falsch läuft. (falsch geschriebenes Passwort als Passwort)

0
Kosmic