我有一个简单的php物业出租系统CMS。现在,我一直坚持将新属性添加到数据库中。

我的数据库:

properties: propertyId, imageId, town, num of rooms etc..


propertyid是主键自动递增,imageId是外键

images: imageId, image (image path with image name)


imageId是主键自动递增:

因此,在我的PHP中,向数据库添加新属性时,我有2条SQL语句(如果这样做不好,请更正我)。

首先插入图像值(“ imagepath / imagename.jpg”)。

第二个查询将插入属性值(镇,numOfrooms等)。

因此,我已将图像插入数据库,然后要向数据库中插入属性,单击添加属性后,我在这里进行错误检查,

我收到消息“图像已成功保存”到数据库,但随后出现错误消息:


  无法添加或更新子行:外键约束失败:CONSTRAINT properties_ibfk_4外键(imageId)参考imagesimageId))


这是我首先插入图像然后插入属性的正确方法吗?

最佳答案

如果您尝试将属性添加到同一行,而只是添加了图像,则需要使用UPDATE而不是INSERT
简化示例

UPDATE propertyName WHERE image = imageIJustInserted


插入/创建行后,您实际上只能对其进行更新。您不能再插入其中。

10-07 18:44