Sql字符串中的javascript默认值

标签 javascript mysql

//我正在尝试将默认变量添加到我的 sql 字符串中,这样我的代码加载时就不会出现语法错误。出于某种原因,当我添加 if 语句时它什么也不做。

{`var serversLength = Request.Form("servers").count;
    var serversTemp = (serversLength) ? Request.Form("servers") : false;
    var servers = [];
    for (i = 1; i <= serversLength; i++) {
       servers.push(serversTemp(i));
    }
    var options = "";
    options +=  Request.Form("options");
    %> 

<%
    var dateLength = Request.Form("date").count;
    var dateTemp = (dateLength) ? Request.Form("date") : false;
    var date= [];
    for (i = 1; i <= dateLength; i++) {
       date.push(dateTemp(i));
    } %>
    <%
    var date2Length = Request.Form("date2").count;
    var date2Temp = (date2Length) ? Request.Form("date2") : false;
    var date2= []; 
    if (date2 === undefined){
    date2="9/29/2015";
    }
    for (i = 1; i <= date2Length; i++) {
       date2.push(date2Temp(i));
    } %>

  var SQL="SELECT LINKEDNAME, ERRNUM,CONVERT(CHAR(16),TSTAMP,21) AS TSTAMP, ERRDESC FROM MAIN.dbo.LINKEDSERVERFAILS " + ((serversLength) ? "WHERE LINKEDNAME IN ('" + servers.join("''") + "')" : "") + "AND TSTAMP BETWEEN" + ((dateLength) ? "('" + date.join("/ ") + "')" : "") + " AND " + ((date2Length) ? "('" + date2.join("/ ") + "')" : "") +""}

最佳答案

date2 是一个数组,您正在为您的数组分配一个字符串,有效地覆盖它。

相反,使用 date2.push("9/29/2015"); 将日期“推送”到数组中。

此外,当您执行 var date2 = []; 时,date2 成为一个对象,因此它不再是未定义的。因此,if 子句永远不会为真。

改为检查它的长度:

if (date2.length === 0){
    date2.push("9/29/2015");
}

关于Sql字符串中的javascript默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847677/

相关文章:

php - 如何扩展 mysql 表以实现增长

mysql - 根据用户id获取分配并修改的用户名

javascript - 查找调用函数的文件的位置(nodejs)

javascript - 在 JavaScript 中读/写文件

javascript - 在单独的文件中声明 React 路由并导入

mysql - 在使用购物车设计数据库表方面需要一些帮助

javascript - 类选择器优先于多个唯一 ID

javascript - 使用 Javascript 正则表达式更改大小写

mysql - SQL 查询连接 2 个表并只显示具有匹配数据的行

php - 在连接中添加数据库名称时出现连接错误