Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使SQL查询文本参数接受包含撇号的句子_Sql_Node.js - Fatal编程技术网

如何使SQL查询文本参数接受包含撇号的句子

如何使SQL查询文本参数接受包含撇号的句子,sql,node.js,Sql,Node.js,如何执行SQL查询以将数据插入数据库。请注意,表dbo.Plans中的PlanDetails字段是一个文本字段。但是,当用户试图输入包含撇号的句子时(例如,我要睡觉了)。通过HTML表单。数据库返回一个错误“increct syntax near ll”),这是指撇号问题。在这种情况下,我应该如何修改下面的代码以使其接受带撇号的句子?据说我可以使用参数化查询。在这个node js示例中,我该如何做 CreatePlan : function (newPlan , UserID, DisplayN

如何执行SQL查询以将数据插入数据库。请注意,表dbo.Plans中的PlanDetails字段是一个文本字段。但是,当用户试图输入包含撇号的句子时(例如,我要睡觉了)。通过HTML表单。数据库返回一个错误“increct syntax near ll”),这是指撇号问题。在这种情况下,我应该如何修改下面的代码以使其接受带撇号的句子?据说我可以使用参数化查询。在这个node js示例中,我该如何做

CreatePlan : function (newPlan , UserID, DisplayName, Email, callback) {
    var sql = require('mssql');
    var config = require('./configuration/sqlconfig');
    var conn = new sql.Connection(config);
    var req = new sql.Request(conn);
    conn.connect(function (err) {
        if (err) {
            console.log(err);
            return;
        } 
        console.log('Attempting to Insert new learning plan...');
        req.query('INSERT INTO dbo.Plans (PlanTitle, PlanTopic, OwnerID, OwnerName, PlanDetails, TargetLearners, OwnerContact) VALUES ("' + newPlan.PlanTitle + '", "' + newPlan.PlanTopic + '", "' + UserID + '", "' + DisplayName + '", "' + newPlan.PlanDetails + '", "' + newPlan.TargetLearners + '", "' +Email+ '");', function (err) {
            if (err) {
                console.log(err);
            } else {
                console.log("Added one new learning plan");
                console.log("The new plan title is " + newPlan.PlanTitle);
                callback();
            }
            conn.close();
        });
    });
},
在SQL(以及许多其他语言)中,您必须转义特殊字符以避免代码中的任何歧义。有很多关于如何转义以及哪个字符与所有其他internet语言有关的文档

以下是维基百科关于转义字符的文章:

下面是一个stackoverflow帖子,可以回答您的问题:


不过,我应该提醒您有关SQL注入的问题,您正在使用的代码将不安全,您可能应该看看这方面的良好做法。

您还可以分享一个源代码,我可以学习如何在Node JS中使用参数化SQL查询吗?谢谢!!我很确定您自己已经掌握了所有需要的内容。(另外,我从未在节点上使用过SQL,所以在这个主题上我并不比你强)