Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
initWithObjectsAndKeys for JSON通过PHP发布到MySQL-在数据库中获取空行_Php_Iphone_Mysql_Ios_Json - Fatal编程技术网

initWithObjectsAndKeys for JSON通过PHP发布到MySQL-在数据库中获取空行

initWithObjectsAndKeys for JSON通过PHP发布到MySQL-在数据库中获取空行,php,iphone,mysql,ios,json,Php,Iphone,Mysql,Ios,Json,正如标题所说 我的NSDictionary initWithObjectsAndKeys for JSON,使用POST方法,通过PHP代码进行MySQL查询,通过使用JSON_编码和JSON_解码在我的SQL数据库中创建空数据,只是每次发布时ID int都会自动增加 我的Xcode代码: -(IBAction)setJsonFromData:(id)sender { NSDictionary *jsonDict = [[NSDictionary alloc] initWithObjec

正如标题所说

我的NSDictionary initWithObjectsAndKeys for JSON,使用POST方法,通过PHP代码进行MySQL查询,通过使用JSON_编码和JSON_解码在我的SQL数据库中创建空数据,只是每次发布时ID int都会自动增加

我的Xcode代码:

-(IBAction)setJsonFromData:(id)sender
{
    NSDictionary *jsonDict = [[NSDictionary alloc] initWithObjectsAndKeys: @"Welcome", @"title", @"Hello", @"article", @"123456789", @"timestamp", nil];

    if([NSJSONSerialization isValidJSONObject:jsonDict])
        {
           NSError *error = nil;
           NSData *result = [NSJSONSerialization dataWithJSONObject:jsonDict     options:NSJSONWritingPrettyPrinted error:&error];
           if (error == nil && result != nil) {
           [self postJSONtoURL:result];
        }
    }
}

-(id)postJSONtoURL:(NSData *)requestJSONdata
{
    NSURL *url = [NSURL URLWithString:@"http://test.com/json.php"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

    [request setHTTPMethod:@"POST"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:[NSString stringWithFormat:@"%d", [requestJSONdata length]] forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody: requestJSONdata];

    NSURLResponse *response = nil;
    NSError *error = nil;

    NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    NSLog(@"RESULT: %@", requestJSONdata);

    if (error == nil)
        return result;
    return nil;
}
我的PHP代码:

if (isset($_REQUEST))
{
    $json = $_REQUEST;
    $data = json_decode($json);

    $title = $_REQUEST['title'];
    $article = $_REQUEST['article'];
    $timestamp = $_REQUEST['timestamp'];

    mysql_query("INSERT INTO news (title, article, timestamp) VALUES ('$title->title','$article->article','$timestamp->timestamp')");
}

mysql_close();  

在执行POST请求后,您将在http正文中接收json负载。
因此,您需要对其进行解码:

$http_body = file_get_contents('php://input');
$data = json_decode($http_body);
之后,您应该能够访问以下数据:

$data->title
PHP不会自动解码传入的json数据


请参阅有关
php://input
事情。

自从您执行POST请求后,您正在http正文中接收json负载。
因此,您需要对其进行解码:

$http_body = file_get_contents('php://input');
$data = json_decode($http_body);
之后,您应该能够访问以下数据:

$data->title
PHP不会自动解码传入的json数据


请参阅有关
php://input
事情。

您的问题是无法将任何数据写入php文件

当您执行post请求时,您需要执行以下操作


$whatevervar=$\u POST['NAME-OF-POST-VARIABLE-FROM-CLIENT']这就是为什么要在数据库中发布空内容。当您将post放入db时,不要直接将post变量放入其中,首先清理并剥离post,然后将第二个var放入db。此外,您还需要有一个响应回调,以了解您的查询发生了什么。

您的问题是您没有将任何数据获取到php文件中

当您执行post请求时,您需要执行以下操作


$whatevervar=$\u POST['NAME-OF-POST-VARIABLE-FROM-CLIENT']这就是为什么要在数据库中发布空内容。当您将post放入db时,不要直接将post变量放入其中,首先清理并剥离post,然后将第二个var放入db。此外,您还需要回复电话以了解查询结果。

My NSLog使用断点打印出发布的jsonDict:
po jsonDict(NSDictionary*)$1=0x07569fb0{article=Hello;timestamp=123456789;title=Welcome;}
请不要使用mysql*函数,因为它们位于。另外,你的代码有很大的安全隐患。很好。享受您的服务器pwn3d。假设一切工作正常,json解码或查询调用都没有错误处理。因为它显然不是,所以你应该在那里添加一些错误处理/调试语句。这不是我的代码@Jason McCreary,我只是在网上使用和编辑它,我不使用PHP,还在学习,我只是做iOS,我还在学习,所以:)@emotality,我很感激你在学习。但是代码闻起来是不是你的。我的NSLog使用断点打印出发布的jsonDict:
po jsonDict(NSDictionary*)$1=0x07569fb0{article=Hello;timestamp=123456789;title=Welcome;}
请不要使用mysql中的函数。另外,你的代码有很大的安全隐患。很好。享受您的服务器pwn3d。假设一切工作正常,json解码或查询调用都没有错误处理。因为它显然不是,所以你应该在那里添加一些错误处理/调试语句。这不是我的代码@Jason McCreary,我只是在网上使用和编辑它,我不使用PHP,还在学习,我只是做iOS,我还在学习,所以:)@emotality,我很感激你在学习。但是不管代码是不是你的,代码都会发出气味。这很有效!!谢谢你,反应很快,也很准确:)我不知道http正文,每天都在学习;)很乐意帮忙
$\u REQUEST
是一个数组,它结合了
$\u POST
$\u GET
$\u COOKIE
。这些由php提供,只包含查询字符串参数(和cookie)。参见;)这成功了!!谢谢你,反应很快,也很准确:)我不知道http正文,每天都在学习;)很乐意帮忙
$\u REQUEST
是一个数组,它结合了
$\u POST
$\u GET
$\u COOKIE
。这些由php提供,只包含查询字符串参数(和cookie)。参见;)