php – 使用MySQLi的real_escape_string作为静态函数

我想知道我是否可以转义字符串(使用real_escape_string)而不首先创建一个对象实例来应用该函数

即,我们可以这样做:

$database = new MysqLi(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$database->real_escape_string($query);
$database->query($query)

等等

但是,我正在尝试为我的应用程序中的一致性做的是,有一个主要是静态的数据库类,它是MysqLi类的扩展,所以我可以调用:database :: real_escape_string($query),一个静态方法.

我确实意识到我可以构建一个在没有MysqL的情况下手动转义字符串的函数.

解决方法:

最简洁的答案是不.

很长的答案是:嗯,不推荐,原因很简单–Microsi的真正的转义考虑了字符编码,因为某种sql注入技术使用和滥用字符编码来绕过常见的过滤器.这要求代码知道原始(PHP)字符集和接收(MysqL)字符集配置.这就是为什么它不能被静态调用(并且在你有一个到服务器的有效链接之前不能被调用)!

我也避免使用它的程序版本,因为它只是通过有效地使用你连接的最后一个服务器来完成“charset”位,这可以在你处理多个数据库时带来有趣的东西同时连接.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...