我有一個簡單的php屬性租賃系統CMS。現在我堅持向數據庫添加新屬性。帶有INSERT語句的簡單PHP CMS
我的數據庫:
properties: propertyId, imageId, town, num of rooms etc..
propertyid
是主鍵自動遞增,圖像標識爲外鍵
images: imageId, image (image path with image name)
imageId
是主鍵自動遞增:在我的PHP
所以我有2向數據庫添加新屬性時的SQL語句(如果這不是這樣做的好方法,請糾正我)。
首先插入圖像值(「imagepath/imagename.jpg」)。
第二個查詢插入屬性值(城鎮,numOfrooms等)。
所以我插入的圖片到數據庫,然後我要插入屬性數據庫,我有錯誤檢查那裏後,我點擊添加屬性,
我得到消息「的形象已成功保存」到一個數據庫,但後來我得到錯誤說:
Cannot add or update a child row: a foreign key constraint fails : CONSTRAINT
properties_ibfk_4
FOREIGN KEY (imageId
) REFERENCESimages
(imageId
))
這是正確的方式做到這一點,我第一次插入圖像,然後我插入屬性?
你需要做兩件事情...插入圖片,在返回的自身ID數據庫。其次你插入屬性並設置圖像ID你現在擁有的。在交易中做這件事的好方法(如果你的數據庫引擎有這個) – daremachine
謝謝我還沒有學習交易,但在stackoverflow中找到類似的問題,並且解決方案使用了php函數mysql_insert_id()這是你的意思嗎? – user3609461
是的,你是對的..你插入後調用mysql_insert_id()..它返回新的ID插入圖像下一次你將此ID設置爲第二個插入,它應該沒事......如果事情在插入過程中失敗,總是一致的數據 – daremachine