I have problem on use HTTPService to send flex data with Chinese characters to PHP server page and update Mysql database to get ?? result. I tested it just send data to PHP and return data immediately from PHP to flex UI is correct. I think seems the problem narrow download to PHP and Mysql. Could anyone can help me advise a solution. Thanks you.
--------------------------------------------------------------------------------------------------------------
Below info is my Table Structure:
CREATE TABLE chrm_leave_tran (
roid int(11) NOT NULL AUTO_INCREMENT,
userid varchar(30) NOT NULL,
leave_type varchar(5) NOT NULL,
start_date date NOT NULL,
end_date date NOT NULL,
remarks varchar(255) DEFAULT NULL,
PRIMARY KEY (roid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Notes: suppose the "leave_type" column display Chinese characters.
PHP Server Page:
<?php
$userid = $_POST['uid'];
$leavetype = $_POST['ltype'];
$sdate = $_POST['sdate'];
$edate = $_POST['edate'];
$ssection = $_POST['ssess'];
$esection = $_POST['esess'];
$remark = $_POST['rmk'];
$server = 'localhost:8889';
$mysql_user = 'root';
$mysql_pwd = 'root';
$db = 'chrms';
$result = mysql_connect($server, $mysql_user, $mysql_pwd);
if (!$result) {
die ('Error connect mysql db'.mysql_error());
exit();
}
if (!mysql_select_db($db)) {
die('Select mysql db error'.mysql_error());
exit();
}
$sql = mysql_query("SET NAMES = utf8");
$sql = mysql_query("SET CHARACTER_SET_CLIENT = utf8");
$sql = mysql_query("SET CHARACTER_SET_RESULTS = utf8");
$sql = mysql_query("INSERT INTO chrm_leave_tran (userid,leave_type,start_date,end_date)
VALUES('$userid', '$leavetype', '$sdate', '$edate')") or die (mysql_error());
echo "Completed...".$leavetype;
?>
ActionScript 3
protected function addLeaveRecord(uid:int):void
{
var remoteData:HTTPService = new HTTPService();
var param:Object = new Object();
var tmpObj:Object = new Object();
var df:DateFormatter = new DateFormatter();
df.formatString = defaultDateFormat;
remoteData.url = "http://localhost:8888/chrms/addleave.php";
remoteData.contentType = "application/x-www-form-urlencoded";
remoteData.method = "POST";
remoteData.resultFormat = "text";
remoteData.addEventListener(ResultEvent.RESULT, resultHandler);
remoteData.addEventListener(FaultEvent.FAULT, faultHandler);
for each (tmpObj in DGArraySource)
{
param.uid = uid.toString();
param.ltype = tmpObj.leaveType;
param.sdate = df.format(tmpObj.startLeave);
param.edate = df.format(tmpObj.endLeave);
param.ssess = tmpObj.startSection;
param.esess = tmpObj.endSection;
param.rmk = tmpObj.description;
remoteData.send(param);
}
}
private function resultHandler(event:ResultEvent):void
{
Alert.show(event.result.toString());
}
private function faultHandler(event:FaultEvent):void
{
Alert.show(event.message.toString());
}
--------------------------------------------------------------------------------------------------------------
Thank you.