PHP记录未插入MySql博客类别表

PHP记录未插入MySql博客类别表,php,html,mysql,forms,Php,Html,Mysql,Forms,我有一个addpost.php,它有一个表单,可以将博客文章提交到mysql数据库中。各表如下: blog\u post\u cats +--------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+------------------+------+-----+

我有一个addpost.php,它有一个表单,可以将博客文章提交到mysql数据库中。各表如下:

blog\u post\u cats

+--------+------------------+------+-----+---------+----------------+
| Field  | Type             | Null | Key | Default | Extra          |
+--------+------------------+------+-----+---------+----------------+
| id     | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| postID | int(11)          | YES  |     | NULL    |                |
| catID  | int(11)          | YES  |     | NULL    |                |
+--------+------------------+------+-----+---------+----------------+
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| catID    | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| catTitle | varchar(255)     | YES  |     | NULL    |                |
+----------+------------------+------+-----+---------+----------------+
blog\u posts\u seo

+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| postID    | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| postTitle | varchar(255)     | YES  |     | NULL    |                |
| postDesc  | text             | YES  |     | NULL    |                |
| postCont  | text             | YES  |     | NULL    |                |
| postDate  | datetime         | YES  |     | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
blog\u猫

+--------+------------------+------+-----+---------+----------------+
| Field  | Type             | Null | Key | Default | Extra          |
+--------+------------------+------+-----+---------+----------------+
| id     | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| postID | int(11)          | YES  |     | NULL    |                |
| catID  | int(11)          | YES  |     | NULL    |                |
+--------+------------------+------+-----+---------+----------------+
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| catID    | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| catTitle | varchar(255)     | YES  |     | NULL    |                |
+----------+------------------+------+-----+---------+----------------+
当用户提交表单时,文章标题、内容、描述将发布到blog_posts_seo表,但所选类别也会将catID和POSTD传递到blog_post_cats表。下面是表单字段的示例。以及通过查询blog_cats表来显示类别名称和复选框的方式:

<form action='' method='post'>

    <p><label>Title</label><br />
    <input type='text' name='postTitle' value='<?php if(isset($error)){ echo $_POST['postTitle'];}?>'></p>

    <p><label>Description</label><br />
    <textarea name='postDesc' cols='60' rows='10'><?php if(isset($error)){ echo $_POST['postDesc'];}?></textarea></p>

    <p><label>Content</label><br />
    <textarea name='postCont' cols='60' rows='10'><?php if(isset($error)){ echo $_POST['postCont'];}?></textarea></p>

    <fieldset>
        <legend>Categories</legend>

        <?php   

        $stmt2 = $db->query('SELECT catID, catTitle FROM blog_cats ORDER BY catTitle');
        while($row2 = $stmt2->fetch()){

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

                if(in_array($row2['catID'], $_POST['catID'])){
                   $checked="checked='checked' ";
                }else{
                   $checked = null;
                }
            }

            echo "<input type='checkbox' name='catID[]' value='".$row2['catID']."' $checked> ".$row2['catTitle']."<br />";
        }

        ?>

    </fieldset>

    <p><input type='submit' name='submit' value='Submit'></p>

</form>
实际发生的是,没有任何东西被传递到blog\u post\u cats表!!所以我不确定出了什么问题

我认为insert语句用于将catID和postID插入blog_post_cats表是正确的,因此我怀疑以下内容存在错误:

<fieldset>
            <legend>Categories</legend>

            <?php   

            $stmt2 = $db->query('SELECT catID, catTitle FROM blog_cats ORDER BY catTitle');
            while($row2 = $stmt2->fetch()){

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

                    if(in_array($row2['catID'], $_POST['catID'])){
                       $checked="checked='checked' ";
                    }else{
                       $checked = null;
                    }
                }

                echo "<input type='checkbox' name='catID[]' value='".$row2['catID']."' $checked> ".$row2['catTitle']."<br />";
            }

            ?>

        </fieldset>

类别

感谢您的帮助。

经过多次测试,我发现了为什么catID和postID没有插入

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

        $_POST = array_map( 'stripslashes', $_POST );

        //collect form data
        extract($_POST);
我的问题中没有包含此代码,我发现如果我注释掉:

/*$_POST = array_map( 'stripslashes', $_POST );

            //collect form data
            extract($_POST);*/
。。。catID和postID已正确插入数据库

我似乎是在将$\u POST数组的值发送到stripslashes函数,但它阻止了将数据插入数据库