无法将表单数据插入数据库(MySQLIi)

时间:2015-10-04 10:45:02

标签: php mysql

编辑:我不确定该说些什么。评论是我现在解决问题的原因。我没有记住显示错误的事实,这对我有帮助。我几乎只是尝试了一些显然因为错误放置变量而无法工作的东西,并且显示错误代码让我知道哪些变量是错误的。感谢您的帮助,此问题现已解决!

这么长的故事简短,标题。我不知道为什么这段代码拒绝将插入的数据输入到数据库中,而且我已经尝试了一些没有更好的结果。

连接:

<?php
session_start();

$host = 'host';
$dbusername = 'username';
$dbpassword = 'password';

$anslutning = mysqli_connect($host, $dbusername, $dbpassword) or die("<b>Could not connect to database server</b>");

$anslutning->select_db('databasename') or die("<b>Could not connect to the specified database</b>");

&GT;

表格从以下网址获取数据:

echo '
                <h2><center>Post a topic</center></h2>
                <br /><br />
                <div class="indexform">
                    <form action="index.php" method="POST">
                        Title: <input type="text" name="title"> <br /> <br />
                        Content: <textarea name="content" class="content"> </textarea> 
                        <br /> <br />
                        <input type="submit" name="postTopicOnGeneral">
                    </form>
                </div>
                ';

将代码插入数据库的PHP代码

if(isset($_POST['postTopicOnGeneral'])) {

                $username = $_POST['username'];
                $title = $_POST['title'];
                $content = $_POST['content'];
                $general = $_POST['general'];

                $addPostOnGeneral = $anslutning->prepare('INSERT INTO tblPosts(title, content, author, category) VALUES(?, ?, ?, ?)');
                $addPostOnGeneral->bind_param("ssss", $title, $content, $username, $general);
                $addPostOnGeneral->execute();

                echo "<center>Post created!</center>";
                sleep(2);
                echo "<script> window.location.href = 'index.php?general=1' </script>";

            }

2 个答案:

答案 0 :(得分:1)

未定义索引:用户名和未定义:general是我从中得到的。

由于您未从表单中的任何位置获取$username$general,因此您一定会收到该错误。

更改您的表单:

echo '
  <h2><center>Post a topic</center></h2>
  <br /><br />
  <div class="indexform">
  <form action="index.php" method="POST">
  Title: <input type="text" name="title"> <br /> <br />
  Content: <textarea name="content" class="content"> </textarea> 
  <br /> <br />
  <input type="submit" name="postTopicOnGeneral">
  </form>
  </div>';

到此:

echo '
  <h2><center>Post a topic</center></h2>
  <br /><br />
  <div class="indexform">
  <form action="index.php" method="POST">
  Title: <input type="text" name="title"> <br /> <br />
  Content: <textarea name="content" class="content"> </textarea> 
  <br /> <br />
  Username:
  <input type="text" name="username">
  General:
  <input type="text" name="general">
  <input type="submit" name="postTopicOnGeneral">
  </form>
  </div>';

然后在index.php

 if(isset($_POST['postTopicOnGeneral'])) {
    echo   $username = $_POST['username'];
    echo   $title = $_POST['title'];
    echo   $content = $_POST['content'];
    echo  $general = $_POST['general']; 
    // rest of your code

答案 1 :(得分:0)

尝试更改

$username = $_POST['username'];
$title    = $_POST['title'];
$content  = $_POST['content'];
$general  = $_POST['general'];

有了这个:

$username = isset($_POST['username']) ? $_POST['username'] : '';
$title    = isset($_POST['title'])    ? $_POST['title']    : '';
$content  = isset($_POST['content'])  ? $_POST['content']  : '';
$general  = isset($_POST['general'])  ? $_POST['general']  : '';