我可以在ajax代码中编写SQL更新吗

Can I write SQL update inside ajax code?

本文关键字:SQL 更新 ajax 代码 我可以      更新时间:2023-09-26

我一直在编写ajax代码,其中需要更新SQL表。我不确定我是否可以在ajax中编写SQL代码,因为我对ajax完全陌生。当我尝试时,我遇到了问题,即当我在ajax代码中编写SQL更新的代码时,它会给我一个错误,说"Unaught Syntax error:Missing catch or finally after try"。这是我正在处理的代码:

$("#ktId").change(function(){
var cataid = $("#ktId option:selected").val();
var tktid = $(this).attr('tktid');
if (tktid != '') {
    $.ajax({
        async: false,
        type : 'POST',
        url : 'ajax/ticketload_test.asp',
        data : { cataid: cataid, tktid: tktid },
        success : function(responseData) {
        try {
            SQL = "UPDATE tbltkt SET ticketType = '& cataid &' WHERE id = '" & Request("tktid")& "'"
            }
        } 
        catch(e) {/*ignore*/}
        }
    });
} else {
        alert("Please fill in the catagory!");
    }
});

背景:在经典的ASP中,我必须创建并从下拉列表中选择值。所以上面提到的"#ktId"就是下拉列表的id。从下拉列表中选择一个选项后,我只需要更新表,即上面提到的tbltkt。"ticketType"是下拉列表中选项的字段或列。所以有人能在这里提到或指出我的错误吗。我可以在ajax中使用SQL更新代码吗?

请不要那样做。点击此处阅读SQL注入:SQL注入

所有SQL代码必须仅存在于服务器端或作为存储过程存在。只需将变量发送到服务器,然后在服务器端进行查询。为了避免黑客攻击,请阅读有关SQL注入的信息。

这不是很安全。也许你应该重新考虑你的建筑?但是,您的语法错误是因为SQL后面有额外的大括号。但是,如果您在回调

中编写任何SQL过程,那么它都不会起作用

这里的要点是,真正应该访问数据库的是您的应用程序服务器(如果您在后端使用ASP,则为IIS),它反过来会侦听您的AJAX请求。因此,访问数据库的代码可能在服务器端,而不是与javascript函数混合,这可能会导致SQL注入攻击,如上面的另一个答案所述。

因此,您应该编写一些服务器处理程序来侦听AJAX调用,在该调用上放置该处理程序将用于构造SQL查询的参数,在数据库服务器上启动它,并返回带有结果的视图(或JSON数据)。

很抱歉,如果您不提供有关应用程序架构和所使用技术的更多详细信息,我将非常详细。