2013-05-06 2 views
0

나는이 개 MySQL의 테이블이 있습니다 1 고객PHP MySQL의 외래 키

lite_order 2-

고객 테이블 컬럼 : CUSTOMER_ID 기본 키 및 자동 증가 필드 이메일 hashed_password이 제기 lite_order

모두를 포함 어쩌면 하나 이상의 주문이 동일한 고객에게 속하고 많은 필드가있는 주문 필드.

lite_order_id 기본 키와 자동 증가 필드 customer_id "index"로 작성했으며 phpmyadmin의 관계보기에서이 열을 customers 테이블의 기본 키를 참조하는 외래 키로 선택했습니다.

Error: Cannot add or update a child row: a foreign key constraint fails (`DB_NAME`.`lite_order`, CONSTRAINT `lite_order_ibfk_2` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`customer_id`) ON UPDATE CASCADE) 
: 자신의 정보가 고객의 테이블에 갈 때 새로운 고객이 가입 한

문제는, D 조 그는 데이터 내가이 단계에서 오류를 얻을 lite_order 테이블로 이동해야한다는 주문 양식을 채 웁니다

어떻게이 오류를 해결할 수 있습니까? 나는 customer 테이블을 가지고 있고 customer 테이블의 customer_id는 현재 값을 가지고 있지만 주문 양식이 제출되면이 값은 다른 테이블의 customer_id 컬럼에도 필요하다. 그리고 나는이 오류가!.

+0

http://php.net/manual/en/ : 당신은, 당신은에 의해 마지막에 삽입 CUSTOMER_ID를 얻을 수 (MySQL은, mysqli, PDO)를 사용하여 어떤 확장에 따라

pdo.lastinsertid.php –

+0

당신이하려는 일을 명확히 할 수 있습니까? 위의 설명과 현재의 대답은 약간 다른 문제를 해결합니다. – Izkata

+0

나는 2 테이블과 두 번째 테이블에 외래 키를 가지고 있는데, 나는 lite_order 테이블에 데이터를 삽입 할 때 다른 테이블의 FK 컬럼에 삽입 될 프라이 머리 키 값을 원한다. 나는 FK가 자동적으로 PK의 가치를 얻어야한다고 생각한다. 주문 양식 페이지를 사용할 때 세션이 활성화되고 고객이 로그인되어 있기 때문입니다. –

답변

0

테이블 "lite_order"에 외래 키 "customer_id"를 할당하면 데이터의 신뢰성을 보장 할 수 있습니다. lite_order는 고객이 없으면 삽입 할 수 없습니다.

고객을 먼저 삽입하고 주문을해야합니다. mysql - - mysqli - pdo

+0

customers 테이블 데이터가 성공적으로 삽입 된 경우 고객이 주문 양식을 채울 때 주문 양식 데이터가 lite_order 테이블에 있어야하며 lite_order 테이블의 외래 키가 값을 가져 오지 않아이 단계에서 오류가 발생합니다. 고객 테이블의 기본 키가 자동으로 선택됩니다. –

+0

고객 테이블 데이터가 이미 삽입되었지만 라이트 순서에 따라 고객 테이블의 customer_id를 lite_order 테이블의 customer_id에 삽입하려면 mysql 코드를 작성해야합니까? 그렇지 않으면 자동으로 발생하게됩니까? –

+0

'lite_order_table'에'customer_id'를 지정해야합니다. 자동이 아닙니다. – antoox