在外键表PHP中插入数据

时间:2017-01-21 01:29:08

标签: javascript php mysql database insert

这是我的类别表。基本上有一个类别和子类别。 ParentCategoryId是该类别下的子类别。例如,我有三个ParentCategoryID 1,这意味着它是category_id 1下的一个子类别,因此isSubCategory设置为1表示是,它是一个子类别,0表示它是一个类别的#s;为什么parentCateogryID对于前四个数据为空,因为它们是类别

我已经有了一个Add Category功能,现在我想要一个Add Subcategory函数,但是对于我将如何进行常规的php查询非常困惑。

<form method="POST">
            <?php
            if(isset($_POST['submit'])){
                include 'testdb.php';

                $addcategory = $_POST['categoryname'];
                $parentcategory = $_POST['parentcategoryID'];

                $query = mysqli_query($con, "SELECT categoryname FROM category WHERE categoryname = '.$addcategory.'");

                $insert = mysqli_query($con, "INSERT INTO category (`categoryname`,`ParentCategoryID`,`isSubCategory`) VALUES ('$addcategory','$parentcategory','1')");
                if(!$insert){
                    echo mysqli_error($con);
                }
                else{
                    echo 'Category successfully added!';
                }

            }
            ?>

结构 enter image description here

每当我试图添加。 enter image description here

需要具有相同的ID(如下图所示)enter image description here 这需要相同,因此插入的子类别显示在Foods类别表中 enter image description here

1 个答案:

答案 0 :(得分:1)

外键在同一个表中不是自引用的。如果您的子类别位于不同的表格中(我建议 - 上面的解决方案非常混乱),那么外键会使插入函数更容易。

无论如何,如果你只是想添加一个新的子类别;

$addcategory = $_POST['categoryname'];
$parentcategory = $_POST['parentcategory'];

$insert = mysqli_query($con, 
"INSERT INTO category 
(`categoryname`,
`ParentCategoryID`,
`isSubCategory`)
 VALUES 
('$addcategory',
'$parentcategory'
'1')");

另外,考虑使用准备好的语句..或至少运行mysqli_escape_string而不是你正在接受的POST参数...留下它们,因为它们允许我插入像&#39 ;; DROP TABLE用户;。