1

我正在设置我的自定义博客的基本提交系统。

这是我尝试将插入的数据提交到数据库中的 PHP 部分

<?php
    session_start();
    if(!isset($_SESSION['user_id'])){
        header('Location: login.php');
        exit();
    }
    include('../includes/db_connect.php');
    if(isset($_POST['submit'])){
        $newTitle = $_POST['newTitle'];
        $newPost = $_POST['newPost'];
        $my_date = date("Y-m-d H:i:s");
        if(!empty($newPost))
            if(!empty($newTitle)){
        $sql="INSERT INTO posts  (title, body)
    VALUES($newTitle, $newPost)";
        $query = $db->query($sql);
        if($query){
                echo "Post entered to database";
            }else{
                echo "Error Submitting the data";
            }
        }
    }
    ?>

然后是提交表格,我很确定这是由于某种原因而出现的错误,但我不知道为什么。

<form action="<?php echo $_SERVER['PHP_SELF']?>"name="newTitle" method="post">
                <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
                    <p>Title:</p><br><input type="text" name="newTitle">
                    <textarea name="newPost" cols="110" rows="25"/></textarea><br>
                    <label for="newPost">Add New Post</label><input type="submit" name="submit" value="submit"/>
                        </form>

这是数据库的表:

post_id (A_I)
user_id
title
body
category_id
posted(datetime)

请记住,我是这方面的菜鸟,所以不要太苛刻:)

4

2 回答 2

1

对字符串使用单引号:

$sql="INSERT INTO posts (title, body) VALUES ('$newTitle', '$newPost')";
                                            //^         ^  ^        ^

注意: 尽量在你的项目中使用PDOandparam binding来防止sql注入。

关于 PDO 的好教程

于 2013-08-25T19:32:28.000 回答
0

仅使用单个表单标签:

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
                    <p>Title:</p><br><input type="text" name="newTitle">
                    <textarea name="newPost" cols="110" rows="25"/></textarea><br>
                    <label for="newPost">Add New Post</label>
                     <input type="submit" name="submit" value="submit"/>
               </form>

在您的 php 代码中,您可以使用 isset() 函数检查您的数据

if(isset($_POST['submit'])){
if(isset($_POST['newTitle']) && ($_POST['newPost']))
        $newTitle = $_POST['newTitle'];
        $newPost = $_POST['newPost'];
        $my_date = date("Y-m-d H:i:s");
        $sql="INSERT INTO posts  (title, body)
    VALUES('$newTitle', '$newPost')";  //use variable in single quote.
        $query = $db->query($sql);
        if($query){
                echo "Post entered to database";
            }else{
                echo "Error Submitting the data";
        }

    }
于 2013-08-25T19:34:48.277 回答