我应该如何将一个数组从iOS传递到PHP,再传递到MySQL,以获得适当的存储(以及返回)?
我知道这是一个很难回答的问题,但我认为我现在做的事情可能是错误的,所以我想了解一下什么是最佳实践 目前我有一批演员。比如说Objective-C中的我应该如何将一个数组从iOS传递到PHP,再传递到MySQL,以获得适当的存储(以及返回)?,php,ios,mysql,arrays,Php,Ios,Mysql,Arrays,我知道这是一个很难回答的问题,但我认为我现在做的事情可能是错误的,所以我想了解一下什么是最佳实践 目前我有一批演员。比如说Objective-C中的NSArray*actors。我想将其传递到我的PHP页面进行存储 现在,我通过将数组转换为如下字符串,在HTTP POST上传递此信息: &actors=Joe Allen*Dave Smith*Mary Johnson*Alice Burg?movietitle=Runner 当它到达PHP时,我将通过如下的存储过程调用将其传递给MyS
NSArray*actors
。我想将其传递到我的PHP页面进行存储
现在,我通过将数组转换为如下字符串,在HTTP POST上传递此信息:
&actors=Joe Allen*Dave Smith*Mary Johnson*Alice Burg?movietitle=Runner
当它到达PHP时,我将通过如下的存储过程调用将其传递给MySQL:
CALL Add_Movie(movietitle, actors);
然后在存储过程中,我通过*
将参与者“分解”到正确的表中。我做相反的事是为了让演员们回来。当我想把名字和姓氏分开的时候,这对我来说变得更加棘手了
不管怎么说,这对我来说真的很烦人。通过HTTP将数组传输到SQL存储并返回的最佳实践是什么?我通常会将“普通旧”对象序列化到JSON(iOS端),发布JSON和php端,解码JSON。我为字典编写了一个类别,如下所示(您可以将其用作NSArray+JSON类别的模板,应该几乎相同) NSDictionary+JSON.h:
#import <Foundation/Foundation.h>
@interface NSDictionary (JSON)
+(id) dictionaryWithJSONdata:(NSData*)jsonData;
+(id) dictionaryWithJSON:(NSString*)jsonString;
-(NSData*) asJSONdata;
-(NSString*) asJSON;
@end
php方面:
$content = file_get_contents('php://input');
$ary = json_decode($content , false); // false means as stdObj as opposed to array
编辑:MPLOG是一个个人日志框架,您应该用它代替NSLog或您当前使用的任何东西。我通常会将“普通旧”对象序列化为JSON(iOS端),发布JSON和php端,解码JSON。我为字典编写了一个类别,如下所示(您可以将其用作NSArray+JSON类别的模板,应该几乎相同) NSDictionary+JSON.h:
#import <Foundation/Foundation.h>
@interface NSDictionary (JSON)
+(id) dictionaryWithJSONdata:(NSData*)jsonData;
+(id) dictionaryWithJSON:(NSString*)jsonString;
-(NSData*) asJSONdata;
-(NSString*) asJSON;
@end
php方面:
$content = file_get_contents('php://input');
$ary = json_decode($content , false); // false means as stdObj as opposed to array
编辑:MPLOG是一个个人日志框架,您应该替代NSLog或您当前使用的任何东西。一种常见做法是使用JSON。这是您为RESTAPI编码数据的方式
但是你可以做任何你喜欢的事。最重要的是您能够获取数据。常用的做法是使用JSON。这是您为RESTAPI编码数据的方式 但是你可以做任何你喜欢的事。最重要的是你能够获得数据
- 已建立的格式具有预先编写的库来处理复杂类型编码和封装/转义字符串/数据之类的事情
- 您不想浪费时间编写新的库来实现不受支持的格式
- 存储、访问、索引等都变得困难或不可能做好
- 如果您只是在寻找键值存储,那么有比MySQL更好的选择
- JSON:现代互联网的通用语言。简单、轻便、灵活,几乎所有东西都能理解它
- XML:JSON臃肿的叔叔。笨重的,冗长的,通常是一个巨大的痛苦的屁股;但是,如果您想在数据交换格式上强加类型、结构和其他类似的东西,您可能会比XML做得更糟
- 已建立的格式具有预先编写的库来处理复杂类型编码和封装/转义字符串/数据之类的事情
- 您不想浪费时间编写新的库来实现不受支持的格式
- 存储、访问、索引等都变得困难或不可能做好
- 如果您只是在寻找键值存储,那么有比MySQL更好的选择
- JSON:现代互联网的通用语言。简单、轻便、灵活,几乎所有东西都能理解它
- XML:JSON臃肿的叔叔。笨重的,冗长的,通常是一个巨大的痛苦的屁股;但是,如果您想在数据交换格式上强加类型、结构和其他类似的东西,您可能会比XML做得更糟
从总体上看,您所描述的内容与定义RESTAPI的情况完全相同。JSON是最好的。JSON与字符串相同,但可以通过两种方式轻松转换为数组。您需要在HTTPStar中编码json,分隔符是一种相当非正统的格式。您可能想发布一个JSON文档。JSON是最好的。JSON与字符串相同,但可以通过两种方式轻松转换为数组。您需要在HTTPStar中编码json,分隔符是一种相当非正统的格式。您可能想发布一个JSON文档。