我试图在PHP中为SQL Sever数据库运行一个基本的while循环。我收回了以下错误:
Fatal error: Severe error translating Unicode
代码适用于另一个脚本,所以我认为它与我查询的表格有关。这是我使用
的代码if(isset($_GET['uid']) && $_GET['uid'] != ''){
$uid = $_GET['uid'];
// check for user
$staffSQL = "SELECT * FROM staff WHERE userid = '".$uid."'";
$params = array();
$staff = sqlsrv_query( $conn, $staffSQL, $params, array("Scrollable"=>"buffered"));
$numStaff = sqlsrv_num_rows($staff);
if($numStaff < 1){
$response["error"] = TRUE;
$response["error_msg"] = "No projects found!";
}else{
while( $row = sqlsrv_fetch_array( $staff, SQLSRV_FETCH_ASSOC) ) {
foreach($row as $key => $value) {
echo "$key = $value <br />";
}
}
}
经过一些谷歌搜索后,我发现this link,但建议的代码只返回不可理解的格格。
答案 0 :(得分:1)
好的,所以经过一些谷歌搜索后我发现this page表示解决方案是在sqlsrv_connect函数中添加一个CharacterSet选项。
$result = sqlsrv_connect($hostname, array(
'UID' => $username,
'PWD' => $password,
'Database' => $database,
'ConnectionPooling' => ($pooling) ? 1 : 0,
"CharacterSet" => "UTF-8" // <---- voila
));
我已对此进行了测试,效果非常好。