Array/Dict Von Xcode auf JSON, PHP, mySql
Dies treibt mich Nüsse. Es scheint so einfach, und ich bin wahrscheinlich etwas fehlt offensichtlich - und das vermute stark es ist, da meine PHP/mysql Kenntnisse fehlen, aber ich kann nicht ankommen es zu wirken. Ich habe mir schwer anderswo (und gestohlen) eine Anzahl von code-snippets von StackOverflow versuchen, das Problem zu lösen, aber ich bin noch nicht überzeugt, ich habe es zu arbeiten.
Vom Xcode-ich bin versucht zu Kodieren ein NSDictionary-Objekt in JSON (JSON-framework), so dass ich dynamisch speichern, array in mysql (ideal als einzelner flacher Objekt - ich weiß, ich weiß) mit der PHP Methode POST.
Code ist unten. Kann ich die json-ok. Ich kann verbinden Sie ok, ändern kann ich Variablen, die nicht-array-Variablen &, die nicht brauchen, zu senden via json, kann ich einfach über alles. Ich kann nicht scheinen zu gehen, dass json und speichern in mysql.
Ja - ich bin ein noob.
... Thx
Ich habe so weit gekommen:
in 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];
an 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();
?>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr senden Ihre JSON-in-POST-Methode , kann Es empfangen werden in PHP mit dem code unten
Antwort auf deinen Kommentar:
//do i even need to decode if i want to store a flattened json object in mysql?
Nein, Sie sollten nicht
json_decode()
Daten; stattdessen speichern Sie die$rawJsonData
zu MySQL. Allerdings sollten Sie die Flucht mitmysql_real_escape_string()
. Hier ist ein Beispiel: