我會盡可能以最好的方式嘗試解釋這一點。所以,我有3個表的數據庫:客戶,登錄名和地址,他們是這樣的:將信息發送到數據庫時出現網站表格問題
customerID
first_name
last_name
email
phone
login_fk
address_fk
loginID
username
password
addressID
housenumber
streetname
postcode
city
代碼:
$query = "INSERT INTO customers ". "(first_name,last_name,phone,email) ". "VALUES('$fname','$sname','$phone','$email');";
$result = mysqli_query($conn, $query) or die(mysqli_error($conn));
我的網頁表單發送的登錄信息和詳細地址的數據庫沒有問題。不過,我得到這個消息,並沒有發送到客戶表:
不能添加或更新子行:外鍵約束失敗(database1
customers
,約束customers_ibfk_1
外鍵(login_fk
)參考文獻login
(loginID
)ON UPDATE CASCADE )
我將值分配給所有字段(使用網絡表單),除了自動遞增的主鍵和fk值。我假設這條消息正在提出,因爲我沒有設置fk值或者我錯了嗎?如果我是正確的,我如何從其他表格中取值以確保關係正確?即login_fk和loginID有關係,並且這些ID應該與address_fk和addressID字段相同並且相同。如果我使用數據庫來插入值,那麼關係是好的,因爲我手動分配fk值來匹配loginID和addressID,所以我假設數據庫是好的,我只需要使用PHP從登錄和地址併發送給客戶表fk值?我曾在很多場合使用過數據庫,並且我曾多次使用過php和html網站,但這是我第一次嘗試創建一個動態網站,所以如果這是一個愚蠢的問題,但是希望它能教會我多一點,我會道歉而其他人在創建動態網站時可能會遇到同樣的問題。
什麼是你的SQL INSERT語句訪問? –
$ query =「INSERT INTO customers」。 「(姓,名,電話,電子郵件)」。 「VALUES( '$ FNAME', '$ SNAME', '$電話', '$電子郵件');」; $ result = mysqli_query($ conn,$ query)或者死(mysqli_error($ conn)); –
我還會補充一點,我知道這是不是安全的SQL注入,但我想讓其餘的工作之前,移動到參數化查詢,以防止它 –