I am trying to insert some hebrew text from app to mysql database but the values are not inserted into database. The method works for english language but having problem with hebrew text. Its not inserting into db some time its showing the text garbage value.
the objective C code is
-(void)updateDatabase{
NSURL *url = [NSURL URLWithString:@"http://site.com/api/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSDictionary *params = [[NSDictionary alloc] initWithObjectsAndKeys:image_name, @"image_name", invoice_no, @"invoice_no", photoReason, @"photo_reason", photoReasonText, @"photo_reason_text", txtField_1.text, @"user_info_1", txtField_2.text , @"user_info_2", txtField_3.text, @"user_info_3", txtField_4.text, @"user_info_4", txtField_5.text, @"user_info_5", txtField_6.text, @"user_info_6", txtField_7.text, @"user_info_7", nil];
NSLog(@"Params: %@", [params valueForKey:@"user_info_6"]);
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"upload_info.php" parameters:params];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success: %@", operation.responseString);
SBJSON *parser = [[SBJSON alloc] init];
NSMutableArray *statuses = [parser objectWithString:operation.responseString error:nil];
int status = [[statuses valueForKey:@"status"] integerValue];
if (status == 0) {
invoice_no = [statuses valueForKey:@"invoice_no"];
NSLog(@"Invoice No: %@", statuses);
percentLabel.text = @"80%";
[self pushView:4];
[self pay];
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Card Images Are Uploaded." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
percentLabel.text = @"70%";
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error: %@", operation.responseString);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error..." message:operation.responseString delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}];
[operation start];
}
and the php code is
<?php
include "constants.php";
$APIVersion = "1.0";
$commandName = $commandUploadInfo;
$image_name = $_POST['image_name'];
$invoice_no = $_POST['invoice_no'];
$photo_reason = $_POST['photo_reason'];
$photo_reason_text = $_POST['photo_reason_text'];
$user_info_1 = $_POST['user_info_1'];
$user_info_2 = $_POST['user_info_2'];
$user_info_3 = $_POST['user_info_3'];
$user_info_4 = $_POST['user_info_4'];
$user_info_5 = $_POST['user_info_5'];
$user_info_6 = $_POST['user_info_6'];
$user_info_7 = $_POST['user_info_7'];
$link = mysql_pconnect($dbhost, $dbuser, $dbpass)
or
die("{\"method\":\"".$commandName."\",".
"\"version\":\"".$APIVersion."\",".
"\"status\":-2,".
"\"message\":\"Could not connect to database\",".
"\"debug\":\"".mysql_error()."\"".
"}");
mysql_select_db($dbname)
or
die("{\"method\":\"".$commandName."\",".
"\"version\":\"".$APIVersion."\",".
"\"status\":-2,".
"\"message\":\"Could not select database\",".
"\"debug\":\"".mysql_error()."\"".
"}");
$insertSQL = "INSERT INTO ".
"`image_info2`(
`image_name` ,
`invoice_no` ,
`photo_reason` ,
`photo_reason_text` ,
`user_info_1` ,
`user_info_2` ,
`user_info_3` ,
`user_info_4` ,
`user_info_5` ,
`user_info_6` ,
`user_info_7`
)".
"VALUES ('$image_name', '$invoice_no', '$photo_reason', '$photo_reason_text', '$user_info_1', '$user_info_2', '$user_info_3', '$user_info_4', '$user_info_5', '$user_info_6', '$user_info_7');";
mysql_query($insertSQL)
or
die("{\"method\":\"".$commandName."\",".
"\"version\":\"".$APIVersion."\",".
"\"status\":-2,".
"\"message\":\"Failed to execute query\",".
"\"debug\":\"".mysql_error()."\"".
"}");
echo "{".
"\"method\":\"" . $commandName . "\",".
"\"version\":\"" . $APIVersion . "\",".
"\"status\":0,".
"\"id\":\"Info uploaded successfully\"".
"}";
?>