我在使用 mysql 和 PDO 时遇到了一些困难。
我希望将产品插入数据库,但是产品表包含外键。自然,插入时我不会知道外键ID。我这样做对吗???有没有更好的方法来解决这个问题?
餐桌产品
- Id PK AI int
- 名称 Varchar(20)
- CategoryId Int FK
- TypeId Int FK
表类别
- Id Int PK
- 猫 varchar(20)
表类型
- Id Int PK
输入 varchar(20)
$type = 'Gloves'; $category = 'Clothing'; $sql = 'INSERT INTO Products SET Name = :name, CategoryId = :catId, TypeId = :typeId WHERE CategoryId IN (SELECT Id FROM Categories WHERE Cat = :category) AND TypeId IN (SELECT Id FROM Types WHERE Type = :type)' $stmt = $db->prepare($sql); $stmt->execute(array(':name' => 'Pink childrens gloves', ':category' => $category, ':type' => $type));
正如下面的评论中提到的:通常,我会从选择框中获取 ID。我不能这样做,因为它将是执行查询的脚本,而不是用户。