首页  >  文章  >  后端开发  >  刚才搜了一下,好像都挺复杂的。

刚才搜了一下,好像都挺复杂的。

WBOY
WBOY原创
2016-06-23 14:12:371031浏览


我说一下我的想法:
首先不知道MySQL是不是所有类型的数据都可以加上单引号,我刚才试了一下,在整数左右加上单引号好像是没有问题。
如果确实任何类型的数据都可以加单引号的话,那么就在生成MySQL语句的时候为任何数据都加上单引号,然后使用mysql_escape_string将接收到的字符中的所有特殊字符转义。这样就可以将接收到的字符串完全“限制”在单引号之间了。

但是就算这样好像也是不能一劳永逸,因为类似like子句后面的字符串中的转义和正常的字符串好像是不一样的。另外如果AMP中任何一个的更新涉及到转义的话,可能都会出现问题。这两个问题有没有一劳永逸地解决的方法?还有没有其他的问题?

其他的数据库所有类型的数据都可以加单引号么?


回复讨论(解决方案)

对于 mysql 自然是没有问题的
like子句后面的字符串中的转义(对%、?)与转义单引号没有任何关系

如果要兼容其他数据库,那么你应该使用 PDO 来操作数据库。PDO::quote 就是用于转义的(不同的数据库的转义符也是不一样的),而 PDO::prepare 更可以做到不需要显式的转义

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn