1

我正在解析来自 json 中服务器的数据以在 iphone 应用程序中使用,然后它需要任何搜索文本字段并将其发布到服务器然后匹配文本并返回下面的数据是我的 iphone 代码

    NSString*searchText=searchTextField.text;

NSString *post =[[NSString alloc] initWithFormat:@"searchCode=%@",searchText];

NSURL *url=[NSURL URLWithString:@"http://www.celeritas-solutions.com/pah_brd_v1/productivo/searchCatalog.php?"];

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];


    NSError *error;
    NSURLResponse *response;
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];



    NSData* myData=[data dataUsingEncoding:NSUTF8StringEncoding];

    NSString *json_string = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
    NSArray *dataArr=[json_string JSONValue];

    for (int i=0; i<[dataArr count]; i++) {


        if (!dataArr || !dataArr.count){


            if(resultArray!=nil){
                resultArray=nil;
                resultArray=[[NSMutableArray alloc]init];
            }




        }



        NSDictionary *dict=[dataArr objectAtIndex:i];

        ObjectData *theObject =[[ObjectData alloc] init];



        [theObject setCategory:[dict objectForKey:@"category"]];
        [theObject setSub_Category:[dict objectForKey:@"sub_Category"]];    
        [theObject setContent_Type:[dict objectForKey:@"content_Type"]];
        [theObject setContent_Title:[dict objectForKey:@"content_Title"]];
        [theObject setPublisher:[dict objectForKey:@"publisher"]];
        [theObject setContent_Description:[dict objectForKey:@"content_Description"]];
        [theObject setContent_ID:[dict objectForKey:@"content_ID"]];
        [theObject setContent_Source:[dict objectForKey:@"content_Source"]];





        [resultArray addObject:theObject];
        [theObject release];
        theObject=nil;



    NSLog(@"%@", json_string);

这是 JSOn 字符串的结果

       ProductivoApp[2087:c203] -JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Unrecognised leading character\" UserInfo=0x57b5a10 {NSLocalizedDescription=Unrecognised leading character}

我的 url 的 PHP 代码

     $flu=$_POST['searchCode'];


       $query =mysql_query("SELECT * From catalog_Master WHERE category_Title LIKE '%$flu%'");

    $rows = array();
    while($row = mysql_fetch_assoc($query)) {
    $rows[] = $row;
     }
4

1 回答 1

0

根据您的最新评论,原因是您的查询失败。

首先,您不应该使用mysql_*函数。看这里的大红框。考虑改用PDOMySQLi

其次,看起来您可能对SQL 注入持开放态度。你应该逃避你的查询

第三,您应该对查询执行错误检查。类似于:

if(!$query) {
   die('Query failed. ' . mysql_error()');
}

这应该让您了解查询失败的原因。

您还没有发布mysql_connect()的代码,您也应该对此进行错误检查。类似于:

$link = mysql_connect('localhost', 'user', 'pass');
if(!$link) {
   // Handle it
}
于 2013-03-25T08:55:48.057 回答