我的INSERT INTO查询无效

时间:2016-09-25 16:54:51

标签: php html mysql insert-into

我试图建立一个新闻系统所以我只需要填写表格来发表文章。不幸的是,似乎经过多次尝试和方法后,我的INSERT INTO查询似乎没有做任何事情。 我使用2个单独的文件:addnews.php(表单)和confirm.php。 我翻译了法语中的所有内容,因此您可以更轻松地阅读。

以下是正常运行的表单代码:

        <div id="centerbox" class="news1" align="center">
        <h1>Write a news</h1><br>
        <form method="post" action="confirm.php">
            <p>Title:</p>
            <input type="text" name="title"><br>

            <p>Content:</p>
            <textarea name="content" rows="8" cols="45"></textarea> 
            <br>
            <p>Picture to display:</p>
            <select name="picture">
                <option value="news">pics/INFO_IMPORTANTE.jpg</option>
                <option value="event">pics/EVENEMENT.jpg</option>
                <option value="helpme">pics/DEMANDE_AIDE.jpg</option>
                <option value="helpyou">pics/PROPOSITION_AIDE.jpg</option>
            </select>

            <p>Your name:</p>
            <input type="text" name="author"><br>

            <input type="hidden" name="date" value="<?php echo date("d/m/Y"); ?>">

                <input type="submit" value="Confirm">
        </form>
    </div>

这是confirm.php中的代码:

        <?php
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=L1-EVMAN', 'root', '');
    }
    catch (Exception $e)
    {
        die('Error : ' . $e->getMessage());
    }
    ?>

        <?php
        $title = htmlspecialchars($_POST['title']);
        $picture = $_POST['picture'];
        $content = htmlspecialchars($_POST['content']);
        $author = htmlspecialchars($_POST['author']);
        $time = date('d/m/Y');

        if (empty($title) OR empty($content) OR empty($author))
        {
            echo '<font color="red">You have to fill everything !</font><br>
            <a href="http://localhost/sourcemaster/addnews>Start over</a>';
        }
        else 
        {
            $addnews = $bdd->prepare('INSERT INTO news (id, title, pic, content, author, time) VALUES(NULL, :$title, :$picture, :$content, :$author, :$time)');
            $addnews->execute(array(
                'title' => $title,
                'pic' => $picture,
                'content' => $content,
                'author' => $author,
                'time' => $time
                ));

            echo 'The news has been added correctly.';
            }
        ?>

问题在于,当我填写表格并确认时,它确实说新闻已被添加但新闻页面上没有任何内容(当我手动添加表格中的所有内容时,该功能正常)。 我在这一切中真的很新,我可以告诉你,我在最后做了一些即兴创作,接下来我发现了一些教程,但似乎没有一个能帮助我。

所以我要求你们帮忙。随意询问更多细节或任何内容。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您的插入查询参数不正确。

:例如$ title将扩展为:“无论用户输入什么”

你没有这样的参数限制。

您必须从绑定参数中删除“$”:

  $('#reset-textbox').click(function() {
    $('.comment_form')[0].reset();
});