gpt4 book ai didi

php - initWithObjects Keys for JSON POST to MySQL via PHP - 在数据库中获取空行

转载 作者:行者123 更新时间:2023-11-29 00:38:31 24 4
gpt4 key购买 nike

如标题所示..

我的 JSON 的 NSDictionary initWithObjectsAndKeys,使用 POST 方法,通过 PHP 代码进行 MySQL 查询,通过使用 json_encoding 和 json_decoding 在我的 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 数据。

参见 docs关于 php://input 的事情。

关于php - initWithObjects Keys for JSON POST to MySQL via PHP - 在数据库中获取空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com