2012-12-03 5 views
0

다른 결과를 가지고 있습니다. 쿼리를 반향시킬 수 있습니다. 삽입 할 수있는 쿼리를 에코합니다. PHPMyadmin을 사용하여 직접 데이터를 삽입했습니다. 하지만 여전히 PHP를 사용하여 몇 가지 오류를 준, 그래서 DB에 관계를 삭제하고 다시 시도하고, 그때 내가 무슨 문제인지 보았다,하지만 난 원인을 이해하지 못합니다.PHP 쿼리는 PHP를 사용하여 데이터베이스에 데이터를 삽입하려고 할 때 데이터베이스에

문제점

내 코드 :

echo "<b>mysql_query(\"INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', '$pagamento_id','$total','$obs')\");</b>"; 

    mysql_query("INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', 'pagamento_id','$total','$obs')") or die(mysql_error()); 

내 에코 :

"는 mysql_query ("EncomendaCab (utilizador_id, data_encomenda, data_vencimento, envio_id, pagamento_id, 총 OBS 삽입 반) VALUES ('1', '2012-12-03 11:13:08', '2013-01-03 11:13:08', '1', '1', '2400', 'Observações') "); "

는 내가 삽입 얻을 무엇을 :

+++++++++++++++ 
+EncomendaCab + 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
|utilizador_id | data_encomenda | data_vencimento | envio_id | pagamento_id | total | obs | 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
|  1  |2012-12-03 11:13:08|2013-01-03 11:13:08| 1  |  1  | 2400 |Observações| 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

그래서이 전자 상거래 사이트입니다, 즉, 물리적 저장소에 직접 지불 또는 페이팔을 통해, 또는 우편 서비스 또는 주문을받을 얻을 것입니다 포르투갈어로되어 있기 때문에 아래에서 번역하고 설명하고 있습니다. (일부는 다른 사람이 쉽게 이해할 수 없을 수도 있습니다.)

utilizador_id :(int) 이것은 사용자 ID입니다. 사용자 테이블

data_encomenda (order_date) (datetime) : 이것은 클라이언트 (사용자)가 주문을 확인하는 양식을 제출 한 순간의 날짜입니다.

data_vencimento (날짜) :이 기한에 해당 그것은 "내 고객"

envio_id (INT)의 요청 인이 선적의 종류는 그 가게의 클라이언트가 할 수있다 선택하십시오 (그는 그의 집에 보내거나 육체적 인 상점에있는 것을 쑤시기 위하여 요구할 수있다);

pagamento_id (INT)

:이은 클라이언트가 선택할 수있는 지불의 왕 (페이팔, 확인, 우편 서비스 등)를 저장하는 테이블이며, 문제가되는 경우, 에코 쿼리에이 메아리입니다 1 또는 다른 숫자의 선택 요소 (데이터베이스에서 값을 가져 오는 마녀)가 있지만 데이터베이스에 제출할 때 0으로 바뀌고 "외부 키 제약 조건 실패"오류가 발생합니다. 이 백 엔드에 표시 할 순서의 총 저장,

OBS (VARCHAR (500)) : 이것은 내가

가 은 (플로트)

총 ... 이유를 이해하지 않습니다 사람들이 사물을 구할 수있는 관측 필드 (예 : "상자에 유니콘을 그립니다").

은 ... 시간 내 주셔서 감사합니다

편집 :

내가 데이터 유형을 잊었지만 이미 추가 ...

오류 메시지가 외래 키 제약 조건 이었지만 테이블 pagamento의 관계를 삭제했지만 삽입 된 데이터가 잘못되었음을 의미하는 (AFAIK) 것을 의미합니다. 정수가 표시되지 않는 이유는 무엇입니까? mysql_query()가 실행되어 그 변수가 "손상"되어서 어디서나 또는 왜 그런지 이해하지 못한다.

아마도 폼에서 $ _POST에 의해 주어진다.

+0

오류 메시지가 무엇입니까? – ChelseaStats

+0

모든 필드의 데이터 유형은 무엇입니까 .. 알려주십시오. –

+0

mysql_xxx() 함수는 쓸모없고 안전하지 않은 것으로 간주된다는 것을 명심하십시오. 더 새로운'mysqli_xxx()'함수 나 PDO 라이브러리를 대신 사용하는 것을 권장합니다. http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-function-in-php – SDC

답변

2
mysql_query("INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', 'pagamento_id','$total','$obs')") or die(mysql_error()); 

PHP 변수가 아니기 때문에 pagamento_id가 문제가됩니다.

mysql_query("INSERT INTO EncomendaCab(utilizador_id,data_encomenda,data_vencimento, envio_id, pagamento_id, total,obs) VALUES('$cliente_id','$data_e','$data_v', '$envio_id', '$pagamento_id','$total','$obs')") or die(mysql_error()); 
+0

정말 바보 같아요,이게 고마워요, 에코를 바꿨어요. 실제 질의가 아니라 ... 내가 지쳐서 ...이 세부 사항을 잡으려고 내 눈을 훈련하고 있기 때문에 ... –

관련 문제