2013-01-09 41 views
1

我試圖使用一個變量的列字段中的SQL語句但它後面拍攝下面的錯誤我:錯誤執行SQL表達式ASP

Microsoft OLE DB提供程序的ODBC驅動程序錯誤「80040E14」

[Microsoft] [ODBC Text Driver]查詢表達式'='是''中的語法錯誤(缺少運算符)。

/junk/dbresults.htm,線31

的代碼:

<% 
    Dim connectString, connect, conDB, con 
    connectString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DBQ=" & Server.MapPath("data") 
      src_abn = Request.QueryString("abn") 
      src_cat = Request.QueryString("cat") 
    set connect = Server.CreateObject("ADODB.connection") 
    connect.open connectString 

    if src_abn = "all" then 
    conDB = "SELECT * FROM cont.csv WHERE " & src_cat & " = 'Yes'" 
    else 
    conDB = "SELECT * FROM cont.csv WHERE ucase(abn) LIKE ucase('%"+src_abn+"%')" 
    end if 

    set con = connect.execute(conDB) 
%> 
+1

'src_cat'碰巧是空字符串嗎? – Oded

回答

0

修正了它,變量沒有被刪除。

1

貌似的src_cat值包含創建一個無效的查詢空格或其他字符。嘗試改變這一行(括號括起來):

conDB = "SELECT * FROM cont.csv WHERE [" & src_cat & "] = 'Yes'" 
+0

值得在此警告OP注入攻擊。 –