我有一个简单的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”)。
第二个查询插入属性值(town,numOfrooms等)。
所以我已将图像插入数据库然后我想将属性插入数据库,我点击添加属性后检查错误,
我收到消息“图像已成功保存”到数据库但后来我收到错误说:
无法添加或更新子行:外键约束失败:CONSTRAINT
properties_ibfk_4
FOREIGN KEY(imageId
)REFERENCESimages
(imageId
))
这是我在第一次插入图像然后插入属性吗?
的正确方法答案 0 :(得分:0)
如果您尝试将属性添加到同一行,您刚刚添加了图像,则需要使用UPDATE而不是INSERT 简化示例
UPDATE propertyName WHERE image = imageIJustInserted
一旦您插入/创建了一行,您实际上只能更新它。你不能再插入它了。
答案 1 :(得分:0)
所以我得到了它的工作
我不得不使用$ imageId = mysqli_insert_id($ connection);
其中connection是我的实际数据库连接
我得到了刚刚插入的图像的imageId,然后我可以在第二个插入语句中使用它
感谢