0

私が取り組んでいる従来の ASP サイトでは、現在のサイト所有者の ID を取得して、Excel の電子メール リストをそのユーザーにエクスポートする必要があります。SQL 行の件名に記載されているエラーが表示されます。どうやってもIDが取得できません。データベースの ID に対応する番号を入力すると、データが正常に取得されます。WHERE ID =この作業を行うために何を後に置くべきかわかりません

<%
Set rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = " & rs("ID")
rs.Open SQL, conn, AdOpenStatic, AdLockPessimistic
If NOT rs.EOF then
    %>
        <textbox value="<% = rs("ID") %>"><% = rs("storeNumber") & " - " & rs("siteOwner") %></textbox>
    <%
End If
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>

私は通常クラシック ASP で作業することはなく、このサイトはずっと前に書かれたものなので、どうすればよいかよくわかりません。

SQL Server でその SQL ステートメントを使用し、rs("ID") を '1' に置き換えると、ステートメントは問題なく実行されます。誰か助けてくれませんか?役に立ったと思われるものは何も見つかりません。

更新された SQL に

    SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = ?

しかし、今私はエラーがあります

[Microsoft][ODBC SQL Server Driver]COUNT field incorrect or syntax error

19行目で

rs.Open SQL, conn, AdOpenStatic, AdLockPessimistic
4

1 に答える 1

5

これらの行は機能しません:

Set rs = Server.CreateObject("ADODB.RecordSet") 
SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = " & rs("ID") 

rs("ID")その上の行を設定して一掃したため、これらの行は失敗していますrs

情報を取得しようとしている ID を SQL クエリに渡す必要があります。これが公開サイトである場合は注意してください。クエリ文字列を介して ID を渡している場合、SQL インジェクション攻撃に対して脆弱になる可能性があります。

于 2012-10-04T19:28:17.647 に答える