4
在使用PDO連接到DB2之後,PHP丟失所有語言環境信息的原因是什麼?PHP - PDO連接(DB2)後出現的語言環境信息
我總是必須在連接後再次設置區域設置信息。
<?PHP
//set locale information
setlocale(LC_MONETARY,'en_US');
//print location information
print_r(localeconv());
// Array
// (
// [decimal_point] => .
// [thousands_sep] =>
// [int_curr_symbol] => USD
// [currency_symbol] => $
// [mon_decimal_point] => .
// [mon_thousands_sep] => ,
// ...
// )
//************************************************
//create conenction to server
$connection= new PDO("odbc:server", 'username', 'password');
//************************************************
//see locale information after creating a connection
print_r(localeconv());
// Array
// (
// [decimal_point] => .
// [thousands_sep] =>
// [int_curr_symbol] =>
// [currency_symbol] =>
// [mon_decimal_point] =>
// [mon_thousands_sep] =>
// ...
//
// )
?>
您是否正在一個(多線程)的網絡服務器上運行其他PHP腳本(也可能使用'setlocale()')正在同時運行?如果是這樣,一定要閱讀[本文檔中的註釋](http://php.net/manual/en/function.setlocale.php#refsect1-function.setlocale-notes)。 –
我們使用Linux與Apache MPM(默認設置) – user1529733
我無法複製您的問題。我正在測試運行Apache 2.2.22和PHP 5.3.10的Ubuntu 12.04 LTS。當我執行** apache2 -l **時,我看到_prefork.c_。這裏是我的PDO連接命令:** $ this-> db_connection = new PDO(「odbc:DRIVER = {iSeries Access ODBC Driver}; SYSTEM = $ this-> he_database_server; PROTOCOL = TCPIP」,$ temp_username,$ temp_password); * * –