ผมลองใส่ค่าว่างในช่อง pk กับ fk มันก็ขึ้น Cannot add or update a child row: a foreign key constraint fails...(ชื่อตารางที่มีการเชื่อม)
อันนี้คือโค้ดที่ผมเขียนไว้ ค่าว่างคือผมเซต auto ไว้ แต่ตรงค่าที่เป็น fk ที่ยืมมาจากอีกตาราง ผมไม่รู้ว่าจะต้องใส่ค่าอะไรอ่ะครับ Code (PHP)
$sql = "INSERT INTO A VALUES ('')";
$sql = "INSERT INTO B VALUES ('','',)";
$sql = "INSERT INTO C VALUES ('','')";
ผมลองรันแบบไม่มี fk ตัวค่าว่างก็รันเลขออกมาปกติอ่ะครับ แต่พอเชื่อม fk แล้ว เพิ่มข้อมูลไม่ได้เลย
ลองเพิ่มแค่ ตาราง A อันเดียวก็ไม่ได้ มันบอกประมาณว่า ตาราง B และ C ใช้ FK ต่อกับมันอยู่
ผมว่าตาราง C ก็สร้าง PK มาอันนึงเลยไม่ได้หรอครับ แล้วก็เก็บ PK ของตาราง A, B อีกที เพื่อให้ง่ายต่อการจัดการในวันข้างหน้า
เช่น
ตาราง A
Code (PHP)
mysql_query("insert into brand(brand_id,brand_name)values('','$brand_name')") or die("ไม่สามารถเพิ่มข้อมูลลง DB ได้");
$LastID = mysql_insert_id();
ตาราง B
Code (PHP)
mysql_query("insert into product(product_id,f_brand_id,product_name)values('','$LastID ','$product_name')") or die("ไม่สามารถเพิ่มข้อมูลลง DB ได้");
$LastID_2= mysql_insert_id();
ตาราง C
Code (PHP)
mysql_query("insert into C(C_id,f_Cbrand_id,f_Cproduct_id)values('','$LastID ','$LastID_2')") or die("ไม่สามารถเพิ่มข้อมูลลง DB ได้");
$LastID _2= mysql_insert_id();