2011-03-29 7 views
1

PLease note 나는 초보자입니다.여러 쿼리 (PHP/MySQL)에 대한 도움말

내 상황에 따라서이다 : 나는 여러 쿼리를 실행하려고

, 동적 인 형태의 뒷면을 끕니다. 따라서 데이터는 두 개의 다른 테이블로 끝납니다.

현재 auto_increment itemId가있는 item_bank에 성공적으로 저장하고 있습니다.

그런 다음 마지막 쿼리에서 생성 된 ItemId를 가져 와서 배열에 삽입하는 다음 쿼리에 삽입하고 싶습니다. (당신이 이것을 따라갈 수 있기를 바랍니다)

첫 번째로, 한 페이지에 여러 개의 쿼리를 실행할 수 있습니까?

다음은 쿼리를 시도한 것입니다. 현재 첫 번째 쿼리가 작동하지만 해당 쿼리에서 생성 된 ItemId를 가져올 수 없습니다.

$ answers는 배열입니다.

// store item structure info into item_bank_tb 
$query = "INSERT INTO item_bank_tb (item_type, user_id, unit_id, question_text, item_desc, item_name) 
VALUES('$type','$creator','$unit','$text','$desc','$name')"; 
mysql_query($query) or die(mysql_error()); 

$itemid = mysql_insert_id(); 

//now store different answers 
$query = "INSERT INTO answers_tb (item_id, text_value)VALUES('$itemid',' . implode(',', $answers) . ')"; 
mysql_query($query) or die(mysql_error()); 

내가 지금 얻을 오류입니다 :

+0

당신은이 구문 오류 마지막 쿼리 :

// store item structure info into item_bank_tb $query = "INSERT INTO item_bank_tb (item_type, user_id, unit_id, question_text, item_desc, item_name) VALUES('$type','$creator','$unit','$text','$desc','$name')"; mysql_query($query) or die(mysql_error()); $itemid = mysql_insert_id(); //now store different answers $answers = mysql_real_escape_string(implode(',', $answers)); $query = "INSERT INTO answers_tb (item_id, text_value) VALUES('$itemid','$answers')"; mysql_query($query) or die(mysql_error()); 

답변

0

편집 :

// store item structure info into item_bank_tb 
mysql_query($query); 
$itemid = mysql_insert_id(); 

// now store different answers 
+0

이것은'열 개수가 행 1의 값 개수와 일치하지 않습니다. '라는 오류입니다.이 ID를 참조하고 있습니다. 자동 증가 기본 키입니다, 그래서 나는 그것을 쿼리에 포함해야합니까? : S – buymypies

+0

기본/색인 인 경우 작동합니다. 테이블 구조를 확인하십시오. 어떤 줄에 오류가 있습니까? –

+0

@ webarto, 그 변화를 구현 한 후 내 마지막 쿼리를 좋아하지 않는 것 같습니다. – buymypies

2

PHP/MySQL은 자동 증가 필드에 의해 생성 된 ID를 얻으려면 단지를 사용하여 "열 수는 1 행에서 값의 수를 일치하지 않습니다" mysql_insert_id() 기능.

0

mysql_insert_id()에서보세요.
+0

이것은'열 개수가 행 1의 값 개수와 일치하지 않습니다. '라는 오류입니다.이 ID를 참조하고 있다고 생각합니까? 자동 증가 기본 키입니다, 그래서 나는 그것을 쿼리에 포함해야합니까? : S – buymypies

+0

"text_value"의 필드 값은 SQL 값 목록이 아닌 문자열이어야합니다. 둘 이상의 응답이있는 경우 각 루프에 대한 삽입 쿼리를 반복 실행해야합니다. – sglessard

+0

데이터베이스 구조를 참조하고 있습니까? 즉 현재 text_value = varchar (50)입니다. – buymypies