php表前缀,为什么一定要先替换表名?
替换
前缀
表名
php
为什么
一定
__
title
body
我们
编程进阶笔记
发布日期
2022-10-07
更新日期
2022-10-07
阅读次数 54
文章字数 312
遇到别人写的一个替换方法,有一些奇怪的bug一开始一直没看出来
它是直接把:#@__ 替换为 table_prefix ,也就是使用了 #@__ 作为表前缀替代符。
但是它是单条sql,例如:insert into `#@__blog` set `title`='$title', `body`='$body' where `id`=$id;
在替换时,如果 title 和 body 中刚好也有 #@__ ,则会把内容中的 #@__ 也会替换为表前缀。
我们需要思考两个问题:
一是我们不得不需要前缀,因为其他大部分程序也是这么写的,如果没有这个功能显得很low
二是表名和参数必须分开,否则就又会像上面提到的问题,表名和内容使用了同样的替代符,导致错误的替换,我们应该先替换表名,再替换实际的参数,也就是必须抽离表名,这样才能完美的替换。
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-105.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
替换
前缀
表名
php
为什么
一定
__
title
body
我们
发表评论
相关推荐