<script language="javascript" type="text/javascript" src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=23a3475a-b05e-4ee9-bea7-b3336a11ccf6&pophcol=2&lang=zh"></script><script language="javascript" type="text/javascript" src="http://static.bshare.cn/b/bshareC2.js"></script>
【错误经过】:调用MySQL存储过程时,需要根据传入参数判断后输出一段中文字符串变量,结果php获取后显示为"??????,???!".
【存储过程】:
delimiter //
CREATE PROCEDURE P__User_RegUser(
out strMessage varchar(1000),
in strAlias varchar(100),
in strPwd varchar(100)
)
Begin
set strMessage = '';
if not exists(select * from _User where UserName = strAlias) then
begin
insert into _User(UserName, PassWord, Activeflag, CreateTime)
values(strAlias, strPwd, 0, now());
end;
else
begin
set strMessage = '用户已存在,请重试!';
end;
end if
End;
//
【PHP代码】:
try {
$username = 'abandonship';
$pwd = 'banlao123';
mysql_query("set @Message");
$result = mysql_query("call P__User_RegUser(@Message, '{$username}','{$pwd}')", $conn) or die("Query failed:".mysql_error());
$result = mysql_query("select @Message",$conn);
$row = mysql_fetch_row($result);
$message = $row[0];
if($message != ''){
echo $message;
}
else{
print "Last id is:".mysql_insert_id();
}
} catch (Exception $e) {
echo "Exception Info:".$e;
}
【处理过程】:
1. 先后检查表、字段、存储过程的编码方式,发现皆是utf-8。
2. 先后查找关于phpMyadmin、MySQL Workbench等关于设定编码格式的资料,未果。
3. 尝试传入FreeBSD上测试,结果显示正常!!这难道和win7+IIS7.5有关?十分不解
结果暂时在打开连接串后加入以下三句以强制转换,结果显示正常,-_______-!!!!!等晚上在win7上装个apache, 在测试下!
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");