[Server]Apache+PHP+MySQL架設過程記錄

posted in: C/C++程式設計, MySQL, Server | 0

記錄一下比較關鍵的問題 這樣以後裝的時候才不用一直去google~ apache: 在安裝過後如果一直無法成功將啟動的話, 到console模式apache安裝資料夾的bin底下,執行: httpd.exe -w -n “Apache2.2” -k start 這樣就會詳細列出錯誤,會比較好debug 當然,”Apache2.2″要看你安裝的版本而改變 這個階段會打不開的原因,大致上都是因為port衝到, 例如skype預設是用80 port,所以要先將他關掉 在正式測試之前,記得到防火牆把80port打開 PHP: 比較大的問題是在安裝之後,在重啟apache的時候會無法打開,用上面的方法來找原因則會出現apache2_2.dll無法載入的訊息。這時候請開啟apache的httpd.conf,找出php相關設定將其改成以下內容: #BEGIN PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL PHPIniDir “C:\workspace\PHP” LoadModule php5_module “C:\workspace\PHP\php5apache2_2.dll” #END PHP INSTALLER EDITS – REMOVE ONLY … Continued

[C/C++]MySQL中語句擁有 ‘ 符號時該如何insert

posted in: C/C++程式設計, MySQL | 0

我們知道SQL在字串insert的時候需要 ‘ ‘ 在指定在其中是字串型態 可是如果在要insert的字串之中出現該字元,將會導致原本的insert失敗 此時我們可以用以下的function去將該字串脫逸掉 std::string escapeString(const char *pStr) { char *tStr = new char[strlen(pStr)*2+1]; mysql_real_escape_string(conn, tStr, pStr, strlen(pStr)); string retStr(tStr); delete [] tStr; return retStr; } 呼叫時: string es = escapeString(“It’s a te’st~’測’試”); string SQL = “insert into … Continued

[C/C++]解決MySQL多國語系(中文、日文)插入時變成亂碼問題

posted in: C/C++程式設計, MySQL, Server | 0

MySQL的亂碼問題果然兇惡…(苦笑) 我試著插入下面的文字的結果居然都是亂碼: string SQL = “insert test(t) values(‘測試中文’)”; 在網路上找教學,幾乎每篇都是說在connect之後insert之前輸入以下指令就行了: mysql_query(conn, “SET NAMES ‘utf8′”); 可是我不管怎麼試都還是失敗 後來試著去找原因,發現語系是有分client跟server二種 雖然我的mysql DB(server)全都是用utf8建好的,可是c++中的string在IDE內的文字,只會認識local作業系統的語系(我用繁體中文,所以是big5) 因此必需要對應好我們文件的語系: mysql_query(conn, “SET NAMES ‘big5′”); 可是以上方法只能解決中文問題 但如果我們需要插入的語句中夾雜著中文及日文及多國字時該怎麼辦呢?用上面的方法只會讓中文正確,但日文還是錯的… 如下面的文字: string SQL = “insert test(t) values(‘測試中文與日本語testかなかな’)”; 我想那是我們的編譯器無法判別哪個字元該拿什麼語系來轉才好,所以才會出現日文字都變成???? 這部份我找了好久還是找不到解決方案 先轉wstring之後再用WideCharToMultiByte也轉成特定語系(利用code page) 也是會發生不知道哪個字元是哪國字的情況… 悲哀的是,MySQL的c api不支援wide string,所以這問題看似是無解了!? 如果有路過的人知道該怎麼解決的話,請告訴我一下吧~我會非常感激的 … Continued