2015-05-28 4 views
1

Я пытаюсь запустить базовый цикл while в PHP для базы данных SQL Sever. Я получаю обратно следующее сообщение об ошибке:SQLSRV Неустранимая ошибка: серьезная ошибка перевода Unicode

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 />"; 
     } 
    } 
} 

Через некоторое Googling я нашел this link но предлагаемый код не вернуть ничего, кроме непонятного giberish.

ответ

0

ОК, так что после еще нескольких поисковых запросов я нашел this page, в котором говорится, что решение добавляет параметр CharacterSet в функцию sqlsrv_connect.

$result = sqlsrv_connect($hostname, array(
    'UID' => $username, 
    'PWD' => $password, 
    'Database' => $database, 
    'ConnectionPooling' => ($pooling) ? 1 : 0, 
    "CharacterSet" => "UTF-8"  // <---- voila 
)); 

Я тестировал это, и он отлично работает.

Смежные вопросы