我试图从我的数据库中获取最后插入的 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 条件失败,我会将 member_id 写入屏幕(仅用于测试),它成功显示了正确的 ID,但显然它不是数字,因此下一个查询不会触发!
为什么是这样?围绕它的最佳解决方案是什么?
更新
好的,我使用 TRIM() 解决了这个问题,如下所示:
If Trim(member_id) <> "" AND IsNumeric(Trim(member_id)) Then
这让我很高兴,因为它可以工作,但让我很难过知道这样一个简单的获取数字 ID 的过程失败了。向 SQL 询问整数 ID 怎么会产生空格?DB字段中显然没有空格,我的代码中也没有空格。如果有人有任何想法,我仍然希望得到答案?