我正在尝试从我的数据库中获取最后一个插入的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字段中显然没有空格,我的代码中也没有空格。如果有人有任何想法,我仍然希望得到答案吗?
答案 0 :(得分:0)
mysql_insert_id是获取上次查询中生成的ID。至于你的情况,mysql_insert_id之前没有查询。您可以执行以返回MAX(member_id)。