1. ホーム
  2. sql-server

[解決済み] Microsoft OLE DB Provider for SQL Server エラー '80040e14' '=' 付近の構文が正しくない

2022-02-13 18:06:45

質問

以下のコードを使用してデータベースからデータを取得しようとすると、このエラーが発生します。

誰か助けてください。

set rs = Server.CreateObject("ADODB.recordset")
sql = " SELECT * from COMPANY WHERE COMPANY_ID = " & Request.Form("CompanyId")
rs.Open sql, cnn

解決方法は?

まず第一に、これはパラメータを使用せずにその場限りのクエリを実行するためのバッドプラクティスです。 SQLインジェクション攻撃情報 http://en.wikipedia.org/wiki/SQL_injection

しかし、質問に答えるには、検索するvarcharまたはcharの値をシングルクォートで囲む必要があります。

set rs = Server.CreateObject("ADODB.recordset")
sql = " SELECT * from COMPANY WHERE COMPANY_ID = '" & Request.Form("CompanyId") & "'"
rs.Open sql, cnn