2015-04-18 118 views
1

錯誤:無法添加或更新子行,外鍵約束失敗(crimereportingsystemsuspect,約束j_fk外鍵(jail_id)參考文獻jailjail_id)ON DELETE CASCADE ON UPDATE CASCADE)PHP不允許插入MySQL數據庫

$sql="INSERT INTO `suspect` (suspect_id, suspect_name, address, height, eye_colour, weight, plead_type, hair_colour, blood_group, gender, dob, jail_id, release_date, admission_date, lawyer_id, hire_type, Picture, fingerprint) 
VALUES 
('$suspect_id','$suspect_name','$address','$height','$eye_colour','$weight','$plead_type','$hair_colour', '$blood_group', '$gender', '$dob', '$jail_id', '$release', '$admission', '$lawyer_id', '$hire_type', '$picture', '$fingerprint') "; 

爲什麼PHP拋出上述錯誤?我能做什麼?

+2

好像你混淆服務器distributrion(XAMP它使用PHP)與PHP本身。你確定你正在使用相同的數據庫(連接和數據庫)?你確定你的$ jail_id在兩種情況下都是一樣的嗎?你的錯誤顯然表明你在jail表中沒有jail_id,你試圖在查詢中使用($ jail_id)。請提供更多信息(完整堆棧查詢) – maque

+0

我正在刪除問題中的XAMPP部分。這是一個PHP/MySQL問題。 –

+0

哪些是你試圖插入的值? 'jail_id'有一個約束,我猜它的值必須存在於另一個(jail?)表中。嘗試在插入之前回顯所有值,並檢查是否傳遞了所有約束。 – Choma

回答

1

看來你已經包裹撇號太多的變數。嘗試僅包裝字符串值,而不是數字值。我的意思是這樣的:

$sql="INSERT INTO suspect (suspect_id, suspect_name, ...) 
VALUES 
($suspect_id, '$suspect_name', ...)"; 

注意$ suspect_id是包裹(我假設它是一個整數),而$ suspect_name被包裹(我想這是一個字符串)。

應用此想法的所有變量。我希望這會起作用。