Получение данных с Sql Server. Вызов php из командной строки отличается от браузера

#php #sql-server #browser #command-line #pdo

#php #sql-сервер #браузер #командная строка #pdo

Вопрос:

Мой код

 $dsn = 'dblib:dbname=AAD;host=mssql';
$dbh = new PDO($dsn, $user, $password);
$query = "AAD..usp_client_code_list_UAS 'WH04', 'ACCS'";
$stmt = $dbh->query($query);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) print_r($row);
  

Моя система — Ubuntu. При вызове из командной строки php test.php на выходе получается

 เอบอส จำกัด
  

но при вызове из браузера я получаю

 ????? ?????
  

Как мне это исправить? Помогите мне, пожалуйста.

Ответ №1:

Попробуйте это:

 define('CHARSET', 'ISO-8859-1');
define('REPLACE_FLAGS', ENT_COMPAT | ENT_XHTML);
$dsn = 'dblib:dbname=AAD;host=mssql';
$dbh = new PDO($dsn, $user, $password);
$query = "AAD..usp_client_code_list_UAS 'WH04', 'ACCS'";
$stmt = $dbh->query($query);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo htmlspecialchars($row, REPLACE_FLAGS, CHARSET);
}
  

Удачи!

Ответ №2:

Я просто добавляю

 setlocale(LC_ALL, 'th_TH.UTF-8');
  

и проблема исчезла.