【发布时间】:2011-03-27 21:50:26
【问题描述】:
我有一个 iPhone 应用程序,它将用户输入的数据提交到 SQL 数据库。它会导致错误,要么切断数据,要么在使用特殊字符时输入“null”。似乎撇号、问号和句号都可以,但除此之外的任何内容都会导致它切断帖子或根本不发布任何内容。
插入数据的我的SQL查询如下:
mysql_query("INSERT INTO tblQA (intResponseID, intPosterID, dPostDateTime, cCategory, cSubject, cBody) VALUES ($id, $u, NOW(), '$cat', '$sub', '$body');");
数据库中的字段类型是 varchar(8000)。所以,有足够的空间,我知道它不会因为字符的限制而被切断。我使用的排序规则是“latin1_swedish_ci”
编辑:我再次测试。当发布到 SQL 数据库时,它是切断字符串的“&”。如果我从 phpMyAdmin 手动插入,我可以毫无问题地插入字符串“Testing & Seeing if this works”。
iPhone 代码:
[p setObject:[NSString stringWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://website.com/script.php?user=%@&pass=%@&cat=%@&sub=%@&body=%@",[[p valueForKey:@"user"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[[p valueForKey:@"pass"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],sport,@"",[[tvQ.text stringByReplacingOccurrencesOfString:@"\n" withString:@" "] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]]] forKey:@"q"];
另外:
如果我手动插入带有与号 (&) 的字符串,它将出现在 iPhone 应用程序中。只是发帖功能不行。
添加 3:20p 8/10/10: 我已经做了一些额外的测试,并且 INSERT 查询工作正常。我创建了一个单独的脚本来从 HTML 页面获取输入的数据,并在其中插入“&”符号就可以了。看来我需要看看 iPhone 正在抓取什么作为字符串并传递给 PHP 脚本。
【问题讨论】: