我看到有人試圖讓MySQL使用','作爲浮點分隔符 - 我想要做的是stop PHP使用它在'nl_NL'語言環境下運行的網站上。PHP> MySQL浮點分隔符本地化問題
代碼PHP所以在寫一樣結束一個SQL查詢:
" ... HAVING `relevance` >= {$fFloatingPointNumber}";
的問題是,因爲PHP的語言環境運行爲「nl_NL」時,其轉換是浮點數到字符串它使用' ,'作爲分隔符(例如1,5)。
我在做什麼,以防止這種情況目前是:
" ... HAVING `relevance` >= " . number_format($fFloatingPointNumber, 2, '.', '');
是否有這樣做的更好的辦法 - 或者這是我最好的選擇?
你能不能創建用於數據庫查詢的某種包裝器,可以將場所臨時更改爲使用「。」的場所。分隔器?我不知道這是否是一個可接受的解決方案,我從來沒有與其他地區的PHP/MySQL的東西工作。另外可能做所有你的數據庫的東西,然後切換到適當的語言環境,當你想輸出數據給用戶。 – 2012-07-17 10:02:53
http://mark-story.com/posts/view/php-floats-localization-and-landmines雖然我不確定,但這可能有幫助(最後兩條評論)。 – 2012-07-17 10:09:12
它已經在一個包裝器中了 - 這個問題是我每次PHP構建查詢時都必須處理區域設置,而不是在抽象基類中,因爲不能保證不會有應用程序代碼_should_是使用'nl_NL'發生在構造和破壞數據庫包裝器之間。 – CD001 2012-07-17 10:10:45