Это сводит меня с ума. Кажется, это так просто, и я, вероятно, пропущу что-то очевидное - и сильно подозреваю, что это потому, что мои навыки PHP/mysql отсутствуют, но я не могу заставить его работать. Я смотрел в другом месте (и украл) несколько фрагментов кода из StackOverflow, пытающихся решить проблему, но я все еще не убежден, что у меня это работает.Array/Dict От Xcode до JSON до PHP до mySql
От Xcode Я пытаюсь закодировать объект NSDictionary в JSON (используя структуру JSON), чтобы я мог динамически хранить массив в mysql (в идеале, как один сплющенный объект - я знаю, знаю) с использованием метода PHP POST ,
Код приведен ниже. Я могу создать json ok. Я могу подключиться нормально, я могу изменить переменные arent array variables &, которые не нужно отправлять через json, я могу сделать что угодно. Я не могу передать этот json и хранить его в mysql.
Да-им a noob.
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();
?>
удивительным - спасибо за быстрый ответ - плохо попасть на него. –