Php 为什么mysql\u real\u escape\u字符串中有资源?
我一直在想为什么我需要一个连接到SQL的实时资源才能使用Php 为什么mysql\u real\u escape\u字符串中有资源?,php,mysql,sql-injection,Php,Mysql,Sql Injection,我一直在想为什么我需要一个连接到SQL的实时资源才能使用mysql\u real\u escape\u string(string$unescaped\u string[,resource$link\u identifier]) 这个函数不是简单地转义数据吗?连接有什么意义?我想在没有连接的情况下使用这个函数,我正在讨论创建一个没有特权的帐户,这样我就可以这样做 我调用一个包装函数runSQL(user,statement),并返回一个具有数据或布尔状态的数组 我一直在考虑让这个runSQL(用
mysql\u real\u escape\u string(string$unescaped\u string[,resource$link\u identifier])
这个函数不是简单地转义数据吗?连接有什么意义?我想在没有连接的情况下使用这个函数,我正在讨论创建一个没有特权的帐户,这样我就可以这样做
我调用一个包装函数runSQL(user,statement)
,并返回一个具有数据或布尔状态的数组
我一直在考虑让这个runSQL(用户、语句、参数和验证数据)
我只是想要一个理由。我在手册页上找不到“为什么”。正确的转义部分取决于当前连接的字符集,因此它需要知道有关活动连接的信息
下面是MySQL C API手册的链接,PHP函数使用该手册: 它说: 请注意,
mysql
必须是有效的开放连接。这是必需的,因为转义取决于服务器使用的字符集
从mysql\u real\u escape\u字符串的文档中- 转义中的特殊字符 未替换的_字符串,考虑到 的当前字符集 连接,以便安全放置 它位于mysql_查询()中
一次可以打开多个MySQL连接。通常您会忽略resource参数,因为您的脚本中只使用1个MySQL连接,它默认为上次打开的连接。您能为我提供一个指向此连接的文档的链接吗?这正是我要找的。谢谢你。奖金循环:有没有办法我可以做到这一点而不被连接?不使用<代码> mysql < /Cord>扩展名,否。请考虑使用一些更现代的东西,如PDO,甚至<代码> mySqLy。但它并没有删除在使用转义/引用函数时需要连接的要求。PHP中的所有MySQL扩展都使用相同的MySQL C API。