微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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”位,这可以在你处理多个数据库时带来有趣的东西同时连接.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐