>  기사  >  백엔드 개발  >  刚才搜了一下,好像都挺复杂的。

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

WBOY
WBOY원래의
2016-06-23 14:12:371033검색


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

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

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


回复讨论(解决方案)

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

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.