Это сводит меня с ума.Это кажется таким простым, и я, вероятно, упускаю что-то очевидное - и сильно подозреваю, что это потому, что мои навыки PHP / mysql отсутствуют, но я не могу заставить его работать.В другом месте я искал (и украл) несколько фрагментов кода из StackOverflow, пытаясь решить эту проблему, но я все еще не уверен, что он работает.
Из Xcode, который я пытаюсь кодироватьNSDictionary объект в JSON (с использованием JSON Framework), чтобы я мог динамически хранить массив в MySQL (в идеале, как один плоский объект - я знаю, я знаю), используя метод PHP POST.
Код ниже.Я могу создать JSON хорошо.Я могу подключиться нормально, я могу изменить переменные, которые не являются переменными массива и которые не нужно отправлять через json, я могу сделать что угодно.Я не могу передать этот JSON и сохранить его в MySQL.
Да, я нуб.
Thx ...
Я получил это далеко:
в xcode
NSDictionary *loginDict = [NSDictionary dictionaryWithObjectsAndKeys:
@"aname", @"username",
@"hello", @"password",
nil];
NSString *jsonString = [loginDict JSONRepresentation];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSString *post = [NSString stringWithFormat:@"json=%@", jsonString];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
[request setURL:[NSURL URLWithString:@"http://domain.com/post_dict.php"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
вpost_dict.php
<?php
$rawJsonData = $_POST['json'];
$decodedData = json_decode($rawJsonData); //do i even need to decode if i want to store a flattened json object in mysql?
//Connect To Database
$hostname='**BLACKEDOUT**.com';
$username='**BLACKEDOUT**';
$password='**BLACKEDOUT**';
$dbname='**BLACKEDOUT**';
$usertable='users';
//I want to update the Records field with the array
$recordsfield = 'Records';
mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);
$query = "UPDATE $usertable SET $recordsfield = '$decodedData' ";//do i encode? serialize? dunno
$result = mysql_query($query);
if(!$result)
{
mysql_close();
echo mysql_error();
return;
}
mysql_close();
?>