2012-08-07 4 views
0

내 DB에서 마지막으로 삽입 된 ID를 다른 쿼리에서 사용하려고합니다 ... 그러나 숫자 값인지 확인하면 실패합니다!SELECT LAST_INSERT_ID - 숫자를 생성하지 않습니다.

// my big insert query goes here // 

Set rs = conn.Execute("SELECT LAST_INSERT_ID();") 
member_id = rs(0) 
rs.Close : Set rs = Nothing 

If member_id <> "" AND IsNumeric(member_id) Then 
    conn.Execute(" INSERT INTO members_reputation (member_id, awarded_for, awarded_when, awarded_what) " _ 
    & "VALUES ("&member_id&", 'Created an account', Now(), 1); ") 
Else 
    Response.Write member_id //testing 
    Response.End // testing 
End If 

당신은 ISNUMERIC 조건이 실패하면, 내가 성공적으로 올바른 ID를 보여주는 (테스트 용으로 만) 화면에 MEMBER_ID를 쓰고 있어요 볼 수 있지만, 분명히 그것은 수치하지, 그래서 다음 쿼리로 해고되지 않습니다!

왜 이런가요? 무엇이 가장 좋은 해결책입니까?

UPDATE

좋아,이 같은 TRIM()를 사용하여이 고정 :

작동하기 때문에 나를 행복하게 만에 같은 간단한 과정 것을 알고 나를 슬프게
If Trim(member_id) <> "" AND IsNumeric(Trim(member_id)) Then 

숫자 ID를 얻지 못했습니다. 어떻게 SQL에 정수 ID를 요청하고 공백을 생성 할 수 있습니까? 분명히 DB 필드에는 공백이 없으며 내 코드에는 공백이 없습니다. 아무도 아이디어가 없다면 나는 여전히 이것에 대한 답을 원할 것입니다.

+0

삽입에 성공 했습니까? –

+0

@MichaelMior : 예, 제가 말했듯이, 정확한 값을 화면에 출력 할 때 그 숫자가 아닙니다. – TheCarver

+0

죄송합니다. 그 중 하나를 놓쳤습니다. –

답변

0

mysql_insert_id는 마지막 쿼리에서 생성 된 ID를 가져 오는 것입니다. 귀하의 경우에는 mysql_insert_id 앞에 쿼리가 없습니다. 대신 MAX (member_id)를 반환하도록 실행할 수 있습니다.

+0

아, 삽입 쿼리가 있습니다. 나는 그것이 큰 soooooo 이었기 때문에 그것을 넣지 않았다. 나는 이것을 미안하다. 미안하다. – TheCarver

+0

member_id가 자동 증가 필드입니까? – sel

+0

예 자동 입력 필드 – TheCarver

관련 문제