代码之家  ›  专栏  ›  技术社区  ›  Incognito

为什么mysql中有一个资源\u real\u escape\u string?

  •  2
  • Incognito  · 技术社区  · 14 年前

    我一直在想,为什么我真的需要一个活动的资源来连接SQL以便使用 mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

    这个函数不是简单地转义数据吗?连接有什么意义?我想在没有连接的情况下使用这个函数,我正在讨论创建一个没有特权的帐户,这样我就可以这样做。

    runSQL(user, statement) 并返回一个具有数据或布尔状态的数组。

    我一直在考虑做这个 runSQL(user, statement, arguments-and-validation-data)

    3 回复  |  直到 12 年前
        1
  •  5
  •   Bill Karwin    14 年前

    正确的转义部分取决于当前连接的字符集,因此它需要知道有关活动连接的信息。


    关于您的评论,这里有一个链接,指向PHP函数使用的MySQL C API手册:

    http://dev.mysql.com/doc/refman/5.1/en/mysql-real-escape-string.html

    上面写着:

    请注意 mysql 必须是有效的、打开的连接。这是必需的,因为转义依赖于服务器使用的字符集。

        2
  •  4
  •   mluebke    14 年前

    http://php.net/manual/en/function.mysql-real-escape-string.php

    未转移的\u字符串,考虑到 的当前字符集 在mysql\u query()中

        3
  •  0
  •   casablanca    14 年前

    一次可以打开多个MySQL连接。通常省略resource参数,因为在脚本中只使用1个MySQL连接,并且默认为最后打开的连接。