我有一个要求用户名的注册系统。有些人的姓氏中有撇号,这会阻止数据写入 MySQL 数据库表(例如 O'Hare)。
我正在使用 mysql_real_escape_string 从字符串中删除撇号。这很好,除非我需要对 Web 服务使用带有撇号的值,否则 Web 服务将返回 false。
我在想我可以在使用 mysql_real_escape_string 之前使用 Web 服务进行名称检查,但这会带来安全漏洞吗?或者 SOAP Web 服务是否已经对干净的输入进行了自己的检查?
或者有没有更好的方法来传递变量,让 PHP 保留撇号但仍然保持它的安全并且 MySQL 可以接受它?