[求助]php中访问数据库遇到特殊字符的问题
发表于 : 2010-12-06 22:03
例如常见的lamp服务器,现在要在表的一个字段中插入字符串 'a\'b'。
在手工书写的时候,当然我们会为字串中的单引号添加一个反斜线。但如果是做一个表单来让别人填,他可能就不知道要这么写,而我们会把表单中返回的数据写入变量,再生成相关的语句。最后很可能就是得到'a'b'。这明显是错误的。
查询了相关的资料之后,发现有使用占位符技术来解决这个问题的方法。例如
insert into tablename values(?)
将上述语句作为一条预执行的数据库语句,然后在执行的时候临时传入变量值,系统会自动为你处理特殊字符的问题。可是这个技术在php中的mysql_query()函数中并不获得支持。这样就迫使我们手工来校正变量。有没有什么方法可以让系统自动来完成这一过程呢?
在手工书写的时候,当然我们会为字串中的单引号添加一个反斜线。但如果是做一个表单来让别人填,他可能就不知道要这么写,而我们会把表单中返回的数据写入变量,再生成相关的语句。最后很可能就是得到'a'b'。这明显是错误的。
查询了相关的资料之后,发现有使用占位符技术来解决这个问题的方法。例如
insert into tablename values(?)
将上述语句作为一条预执行的数据库语句,然后在执行的时候临时传入变量值,系统会自动为你处理特殊字符的问题。可是这个技术在php中的mysql_query()函数中并不获得支持。这样就迫使我们手工来校正变量。有没有什么方法可以让系统自动来完成这一过程呢?