当前位置: 首页 > 知识库问答 >
问题:

在 PHP 中使用外键将行插入到表中

杜鸿彩
2023-03-14

我正在创建一个使用Apache Web服务器(PHPmyAdmin)的PHP网站

我有三张桌子:

  • 品牌
    • brand_id(主键)自动增加
    • brand_name
      < li>item_id(主键)自动递增 < li >项目类别
    • model_id(主键)自动增加
    • item_model
    • brand_id(brand.brand_id的外键)
    • brand_name(item.item_id的外键)
    • 数量
    • 价格

    我想在模型表中插入新值时遇到问题。

    这是我用来插入的PHP代码

    if (isset($_POST['brand_id']));
        $brand = ($_POST['brand_id']);
    if (isset($_POST['item_id']));
        $cat = ($_POST['item_id']);
    if (isset($_POST['model']));
        $model = ($_POST['model']);
    if (isset($_POST['quantity']))
        $quantity = ($_POST['quantity']);
    if (isset($_POST['price']))
        $price = ($_POST['price']);
    
            $sql = "INSERT INTO model (item_model, brand_id, item_id, quantity, price)
                    VALUES ('$model', '$brand', '$cat', '$quantity', '$price')";
    

    注意,我没有在model_id中插入任何值,因为我认为它会自动增加,因为它是自动增加的。我不知道我是对还是错。isset值是从另一个PHP文件传递的。因此,这个PHP基本上只是从前面的PHP文件中捕获抛出的值。

    我曾尝试使用SQL语句直接从PHPmyAdmin插入值,并产生了此错误:

    Cannot add or update a child row: a foreign key 
    constraint fails (`stock`.`model`, CONSTRAINT `fk_item_brand` 
    FOREIGN KEY (`brand_id`) REFERENCES `brand` (`brand_id`) ON UPDATE CASCADE) 
    

    如果我尝试在其中一列中输入id值,则会产生错误:

    SQL query:
    
    INSERT INTO `model`(`model_id`, `item_model`, `brand_id`, `item_id`, `quantity`, `price`) 
    VALUES (1,'a','1','1','a','a')
    
    MySQL said: Documentation
    
    #1062 - Duplicate entry '1' for key 'PRIMARY' 
    

    如何在PHP中使用外键将行插入表中?

共有1个答案

文喜
2023-03-14
$sql = "INSERT INTO model (model_id,item_model, brand_id, item_id, quantity, price)
                VALUES (null,'$model', '$brand', '$cat', '$quantity', '$price')";

试试这个。

添加自动增量字段并传递值null

 类似资料:
  • 我正在尝试使用单个表将数据插入到不同的表中,并且我正在插入的表具有主键。

  • 问题内容: 我有本身具有外键的表。列 parentid 是外键, 不能 为NULL。 如果我这样做,那么它说不能将NULL插入 父母的父母 。但是,如果还没有插入行,我可以为它设置什么值呢? 我如何编写将向该表添加行的脚本? 谢谢 问题答案: 技巧:拥有一个带有虚拟密钥的虚拟行,例如99999。将其插入为FK,然后将FK更改为其实际值。并在交易中完成。

  • 我试图用Hibernate保存一个表。父表与其子表具有一对多关系。父表POJO有其子表POJO的集合。 当我保存父表时,数据也被插入到它的子表中,但它的外键不为NULL。 下面是我的代码:家长: 儿童: Hibernate服务: 我找到了一个解决方案,将我的孩子反向映射到父母,如下所示 但我在想这是否可以避免。我希望还有其他方法,我不需要把我的每个孩子都映射到父母那里。 Kinldy帮助,如果你能

  • 问题内容: 我当前正在使用SQL Server 2008,并且正在尝试使用表变量创建语句以在表中插入多行。就目前而言,我必须将要添加的信息插入4个不同的位置(2个select语句,1个insert和1个update),但是希望能够创建一个表变量,因此我只需要输入信息一次。任何帮助/建议将不胜感激。 这是我试图改变的一个例子。 问题答案: 这是您仅要输入一次信息所要寻找的东西吗?

  • 我做了2个表第二个表由外键组成,它引用了第一个表的主键第二个表由3个字段组成id(主键),顺序号,fid我使用以下命令 sql语法中的错误