簡體   English   中英

執行數據庫查詢時出錯

[英]Error Executing database query

我在這里做錯了什么:

<cfquery datasource="mydb" name="qCoulmnInsert">
INSERT INTO 
           mytable (delivered_int,unique_open_int,spamreport_int,drop_int,request_int,bounce_int,deferred_int,                      processed_int,date_dt,startdate_dt,enddate_dt,open_int,blocked_int)

VALUES
      <!--- loop through your array --->
     <cfloop from="1" to="#arrayLen(cfData)#" index="i">
     (
      <cfif structKeyExists(cfData[i], "delivered")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].delivered#">
      <cfelse>
         NULL
      </cfif>

      <cfif structKeyExists(cfData[i], "unique_open")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].unique_open#">
      <cfelse>
         NULL
      </cfif>


      <cfif structKeyExists(cfData[i], "spamreport")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].unique_open#">
      <cfelse>
         NULL
      </cfif>

      <cfif structKeyExists(cfData[i], "drop")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].drop#">
      <cfelse>
         NULL
      </cfif>


      <cfif structKeyExists(cfData[i], "request")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].request#">
      <cfelse>
         NULL
      </cfif>


      <cfif structKeyExists(cfData[i], "bounce")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].bounce#">
      <cfelse>
         NULL
      </cfif>

      <cfif structKeyExists(cfData[i], "deferred")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].deferred#">
      <cfelse>
         NULL
      </cfif>

      <cfif structKeyExists(cfData[i], "processed")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].processed#">
      <cfelse>
         NULL
      </cfif>

      <cfif structKeyExists(cfData[i], "date")>
        <cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#cfData[i].date#">
      <cfelse>
         NULL
      </cfif>

      <cfif structKeyExists(cfData[i], "startdate_dt")>
        <cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#cfData[i].startdate_dt#">
      <cfelse>
         NULL
      </cfif> 


      <cfif structKeyExists(cfData[i], "enddate_dt")>
        <cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#cfData[i].enddate_dt#">
      <cfelse>
         NULL
      </cfif> 



      <cfif structKeyExists(cfData[i], "open")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].open#">
      <cfelse>
         NULL
      </cfif>



      <cfif structKeyExists(cfData[i], "blocked")>
        <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i].blocked#">
      <cfelse>
         NULL
      </cfif>

      )

      <cfif i neq arrayLen(cfData)>,</cfif>
  </cfloop>
</cfquery> 

您可以參考我以前的文章以獲取更多信息: 將結構元素插入數據庫

表結構的SQL Fiddle: http ://sqlfiddle.com/#!2 / e255c / 1

日期,開始日期和結束日期是數據庫表中的日期時間。

錯誤信息:

執行數據庫查詢時出錯。 您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在第8行的'5 5 5'2014-01-06'10)('2014-01-07'3'

The error occurred in C:\myfile.cfm: line 55
Called from C:\application.cfc: line 386
Called from C:\myfile.cfm: line 55
Called from C:\application.cfc: line 386

53 : VALUES
54 :       <!--- loop through your array --->
55 :      <cfloop from="1" to="#arrayLen(cfData)#" index="i">
56 :      (
57 :       <cfif structKeyExists(cfData[i], "delivered")>

查詢中的每個元素/列后都沒有逗號。

您的錯誤顯示了它:

'5 5 5'2014-01-06'10)

添加逗號

'5,5,5,'2014-01-06',10)

那是關鍵問題。

您需要在SQL語句的帶括號的值部分中的每個值之間添加逗號。

逗號在每個if語句之后,因此結果為:

值(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)

如果您沒有任何結構鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM