DB から最後に挿入された 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 フィールドには明らかに空白はなく、私のコードにも空白はありません。誰かが何かアイデアを持っているなら、私はまだこれについて答えたいですか?