私がやろうとしているのは、アラビア語のテキストを My SQL に保存することです。
私のSQLテーブルには照合がありますutf8_general_ci
iPhoneアプリにテキストフィールドがあり、PHPを使用してデータを保存しています。
PHPコードは以下のようになります。
$con = mysql_connect(localhost, $username, $password);
@mysql_select_db($database) or die("Unable to select database");
$propType = $_POST['propType'];
$price = $_POST['price'];
$type = $_POST['type'];
$zone = $_POST['zone'];
$location = $_POST['location'];
$no_floor = $_POST['no_floor'];
$no_apt = $_POST['no_apt'];
$basement = $_POST['basement'];
$area = $_POST['area'];
$addedBy = $_POST['addedBy'];
$imagePath = $_POST['imagePath'];
$saleType = $_POST['dummy001'];
$mauka = $_POST['mauka'];
$mobileNumForDial = "0";
$result = mysql_query("SELECT mobileNumber FROM userInfo WHERE username='$addedBy'");
while($data = mysql_fetch_row($result)){
$mobileNumForDial=$data[0];
}
$sql = mysql_query("INSERT INTO buildingData (propType, price, type, zone, location, no_floor,
no_apt, basement, area, addedBy, imagePath, dummy001, dummy002, mauka)
VALUES
('$propType', '$price', '$type', '$zone', '$location', '$no_floor', '$no_apt', '$basement',
'$area','$mobileNumForDial','$imagePath', '$saleType', '', '$mauka')");
iPhoneコードは以下のようになります
if ([btnImage.accessibilityIdentifier isEqualToString:@"no_image"]) {
imageSet = @"missing";
} else {
imageSet = @"set";
}
post = [[NSString alloc] initWithFormat:@"propType=%d&price=%@&type=%d&zone=%d&location=%d&no_floor=%d&no_apt=%d&basement=%d&area=%@&addedBy=%@&imagePath=%@&dummy001=%d&mauka=%@",
realEstatePV.selectedItem,
priceData.text,
typePV.selectedItem,
areaPV.selectedItem,
regionPV.selectedItem,
floorData.text.intValue,
aptData.text.intValue,
basementPV.selectedItem,
areaData.text,
[keychainItem objectForKey:kSecAttrAccount],
imageSet, salePV.selectedItem, mauka.text];
postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
postLength = [NSString stringWithFormat:@"%d", [postData length]];
url = [NSURL URLWithString:@"http://www.smart-kw.com/sama/saveBldgData.php"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:postLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPBody:postData];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if( theConnection )
{
indicator.hidden = NO;
[indicator startAnimating];
webData = [[NSMutableData data] retain];
}
else
{
NSLog(@"Internet problem maybe...");
}
問題は
英語のデータを保存している場合は問題ありません。
ただし、アラビア語のテキストを入力すると、??? として保存されます。mysql データベースで。
なぜこれが起こっているのですか?
編集 1
以下でも試しましたが、まだデータが*???として保存されています。
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
$sql = mysql_query("INSERT INTO buildingData (propType, price, type, zone, location, no_floor,
no_apt, basement, area, addedBy, imagePath, dummy001, dummy002, mauka)
VALUES
('$propType', '$price', '$type', '$zone', '$location', '$no_floor', '$no_apt', '$basement',
'$area','$mobileNumForDial','$imagePath', '$saleType', '', '$mauka')");