当前位置: 首页 > 面试题库 >

使JavaScript字符串与SQL友好

耿俊彦
2023-03-14
问题内容

是否有办法将JavaScript字符串传递给MySQL的NodeJSfriendly?我正在尝试将电子邮件地址传递给我的NodeJS服务器并查询到MySQL数据库。在执行常规文本(例如用户名)时可以正常工作,但电子邮件地址却不能。显然,使用转义不是正确的答案,因为这并不意味着要进行SQL插入。我假设我需要一些PHPhtml" target="_blank">函数mysql_real_escape_string()


问题答案:

事实证明,mysql_real_escape_string()非常简单。

mysql_real_escape_string()
调用MySQL的库函数mysql_real_escape_string,该函数将反斜杠添加到以下字符前:\ x00,\ n,\ r,\,’,’和\x1a。

实际上听起来很简单。您可以执行以下操作:

function mysql_real_escape_string (str) {
    return str.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, function (char) {
        switch (char) {
            case "\0":
                return "\\0";
            case "\x08":
                return "\\b";
            case "\x09":
                return "\\t";
            case "\x1a":
                return "\\z";
            case "\n":
                return "\\n";
            case "\r":
                return "\\r";
            case "\"":
            case "'":
            case "\\":
            case "%":
                return "\\"+char; // prepends a backslash to backslash, percent,
                                  // and double/single quotes
            default:
                return char;
        }
    });
}

注意
:我还没有通过任何类型的单元测试或安全测试来运行它,但是它确实可以工作,并且,作为一个额外的好处,它转义了制表符,退格键和’%’,因此也可以使用按照OWASP的建议在LIKE查询中使用(不同于PHP原始版本)。

我确实知道这mysql_real_escape_string()是字符集感知的,但是我不确定这会带来什么好处。



 类似资料:
  • 问题内容: 我在node.js中运行它: 我不明白的是为什么为什么要“漂亮地打印”对象,而字符串连接却“丑陋地打印”对象。更重要的是,使它打印的最佳方法是什么? 问题答案: 将对象强制转换为字符串,即: http://jsfiddle.net/Ze32g/ 漂亮的打印是一个很好的,可能非常复杂的基础代码,有人将其作为对象和方法的一部分来实现。 试试这个:

  • 这是示例字符串: 值的数目不是恒定的。我如何从这个字符串中分离出所有的值?

  • 字符串是一种数据类型,由字符组成,用于表示文本数据。 1. 创建字符串 使用字符串字面量就可以创建字符串。 var str1 = ''; var str2 = ""; 以上例子创建了两个空字符串。字符串可以用单引号包裹,也可以用双引号包裹,效果是一样的。 大部分前端程序员都会选择单引号,这么做的原因是为了契合 HTML 的书写习惯,拼接 HTML 的时候,HTML 元素的属性可以直接使用双引号

  • 简介 我只介绍了表和数,因为它们在Scheme中最为常用。然而,Scheme也有像字符(Character)、字符串(String)、符号(Symbol)、向量(Vector)等的其它数据类型,我将在11到14章节中介绍它们。 字符 在某个字符前添加#\来表明该物是一个字符。例如,#\a表示字符a。字符#\Space、#\Tab、#\Linefeed和#\Return分别代表空格(Space)、制

  • 本文向大家介绍浅谈JavaScript字符串与数组,包括了浅谈JavaScript字符串与数组的使用技巧和注意事项,需要的朋友参考一下 JavaScript字符串 字符串是一系列字符的集合,包括英文字母、标点符号、特殊符号、汉字等。 在JavaScript中,字符串可以使用双引号(" ")或单引号(' ')来表示。 双引号和单引号必须成对出现,双引号里面可以包含单引号,单引号里面也可以包含双引号。

  • 主要内容:声明字符串变量,PL/SQL字符串函数和运算符PL/SQL中的字符串实际上是一个具有可选大小规格的字符序列。字符可以是数字,字母,空白,特殊字符或全部的组合。 PL/SQL提供三种字符串 - 固定长度字符串 - 在这样的字符串中,程序员在声明字符串时指定长度。该字符串的右边填充规定的长度。 可变长度字符串 - 在这样的字符串中,指定字符串的最大长度达,并且不会填充。 字符大对象(CLOB) - 这些可变长度字符串最多可达。 PL/SQL字符串