<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>
【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; }
【错误经过】:调用MySQL存储过程时,需要根据传入参数判断后输出一段中文字符串变量,结果php获取后显示为"??????,???!".
【存储过程】:
【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, 在测试下!
本文记录了一次使用PHP调用MySQL存储过程中遇到的中文乱码问题及解决过程。通过检查编码设置并最终在连接串后加入字符集转换语句解决了问题。
308

被折叠的 条评论
为什么被折叠?



