通过PHP(使用mysqli)将HTML表单数据发送到SQL数据库

13

我希望将 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>

我的数据库 "posts" 表格列:

pid
title
contents
tags
category

pid 字段已开启 auto_increment 属性。

我已经尝试过向所有列(包括 pid)发送值,并按“正确”的顺序进行了尝试。

mysqli_connect 部分不是问题,因为我从另一个正常工作的 .php 文件中复制了它。

服务器 php-sql 兼容性也不是问题,因为我已成功让另一个 .php 文件从数据库中检索数据(这些数据是手动插入的)。


当你说什么都似乎不起作用时,是什么没有起作用呢?你是否遇到了错误、数据库中的错误数据等问题? - Eli White
我指的是从不同问题的答案中提供的解决方案都没有起作用。我没有得到任何错误输出。 - Alex
2个回答

16

改变这个

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

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

1
就是这样。我太专注于 .php 了,从未想到过那个问题。虽然我不明白为什么会有影响,但还是谢谢你。 - Alex
2
当提交按钮被按下时,@user117893 onSubmit 调用一个 JavaScript 函数,表单的操作是将表单提交到的 URL 页面。 - Eli White
好的。之前我在使用JavaScript,所以才会用onSubmit。谢谢你,Eli。 - Alex

0
$connect = mysqli_connect("my host","my user","my password","my db");

不要忘记纠正所有的拼写错误,当你不知道出了什么问题时,这可能会很麻烦。(将密码拼错为“password”)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接