在NSString中转义字符

时间:2011-03-01 09:31:01

标签: php objective-c cocoa-touch postgresql input-sanitization

我遇到了一个问题。我有一个NSString,我想将此字符串发送到服务器以插入数据库。但是当NSString是(例如)时我遇到了问题:

  

这不是学生。

使用此脚本将此字符串发送到服务器端:

$value = $_POST["stringvalue"]

insert into stringtable (stringvalue) values ('$value');

由于“isn't”部分,插入查询无法运行并失败。

现在我想转义字符,这意味着“isn't”将变为“isn\'t”,以便我可以插入数据库。我想问一下我该怎么做?

谢谢。

4 个答案:

答案 0 :(得分:4)

不要依赖输入卫生方法,最好使用参数化语句插入数据。详细了解Bobby Tables,更具体地说明如何避免in PHP

输入卫生的一个特殊问题是您必须在每次插入之前执行此操作,有时可能会意外地执行两次,依此类推。简单地使用参数化语句,从长远来看会更容易。

答案 1 :(得分:1)

答案 2 :(得分:1)

我想这是PHP而不是iPhone SDK的问题?

答案 3 :(得分:1)

您可以在服务器端使用这些PHP方法:

$value = addslashes($_POST["stringvalue"]);

$valueaddslashes

上添加斜杠
$value = html_special_chars($_POST["stringvalue"]);

逃避所有特殊的角色。 addslashes

我认为这不是iPhone问题。