无法弄清楚为什么我的某些SQL代码不起作用

时间:2017-07-13 16:43:13

标签: mysql database coldfusion cfml

我正在使用ColdFusion构建更新查询,但无法弄清楚为什么这段代码不起作用?注意,它直接在mysql服务器中工作,因此SQL必须是有效的,它只是在标签内调用时不更新我的数据。

我正在撞墙挡住我的头,很想得到那个有想法的人的帮助。我的感觉是ColdFusion在它到达DB之前弄乱了格式。谢谢大家的时间。

<cfquery name="qry" datasource="uf">
UPDATE users set expiry = (SELECT DATE_ADD("#user_qry.expiry#", INTERVAL 10 DAY)), active = 1 where user_id = #user_id#
</cfquery>

1 个答案:

答案 0 :(得分:2)

您正在混合使用CF和MySQL日期逻辑。我只坚持一个。使用//private System.Windows.Forms.DataGridView dgvResults; dgvResults.DataSource = DB.getReport(); Microsoft.Office.Interop.Excel.Application oXL; Microsoft.Office.Interop.Excel._Workbook oWB; Microsoft.Office.Interop.Excel._Worksheet oSheet; try { //Start Excel and get Application object. oXL = new Microsoft.Office.Interop.Excel.Application(); oXL.Visible = true; oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add("")); oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet; var dgArray = new object[dgvResults.RowCount, dgvResults.ColumnCount+1]; foreach (DataGridViewRow i in dgvResults.Rows) { if (i.IsNewRow) continue; foreach (DataGridViewCell j in i.Cells) { dgArray[j.RowIndex, j.ColumnIndex] = j.Value.ToString(); } } Microsoft.Office.Interop.Excel.Range chartRange; int rowCount = dgArray.GetLength(0); int columnCount = dgArray.GetLength(1); chartRange = (Microsoft.Office.Interop.Excel.Range)oSheet.Cells[2, 1]; //I have header info on row 1, so start row 2 chartRange = chartRange.get_Resize(rowCount, columnCount); chartRange.set_Value(Microsoft.Office.Interop.Excel.XlRangeValueDataType.xlRangeValueDefault, dgArray); oXL.Visible = false; oXL.UserControl = false; string outputFile = "Output_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"; oWB.SaveAs("c:\\temp\\"+outputFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); oWB.Close(); } catch (Exception ex) { //... } 。这样,使用CF的dateAdd(),你就可以在CF内部的CF日期对象中添加10天,而不是试图让MySQL在CF生成的日期字符串中添加10天。

此外,您需要在WHERE语句中使用cfqueryparam。确保您清理输入。