有支 PHP 程式在 Windows 主機上跑得好好的,但在 Linux 會出現問題。
程式出錯的地方是用 PHP PDO 連線到 Sybase,資料會無法取回。把 PDOStatement 的 errorInfo() 印出來,看到錯誤訊息是不允許將 VARCHAR 轉型為 NUMERIC。
Array (
有支 PHP 程式在 Windows 主機上跑得好好的,但在 Linux 會出現問題。
程式出錯的地方是用 PHP PDO 連線到 Sybase,資料會無法取回。把 PDOStatement 的 errorInfo() 印出來,看到錯誤訊息是不允許將 VARCHAR 轉型為 NUMERIC。
Array (
因為要防止 SQL injection,需要做參數化查詢。以往都是把參數 (SQL params) 先放在 array,再把 SQL 與 array 記錄到 log 裡,不過總覺得這做法不太直覺,每次要 debug 也要自己在那邊兜來兜去。
上網查一下發現有 PDOStatement::debugDumpParams 這個函式可以用,可以印出原始的 SQL(未代入參數)、代入參數後的 SQL、各參數,不過這個 function 是無回傳值的 (void),會直接印出到畫面上。
查了一下有一篇 "Something like debugDumpParams in pdo settable to a string",利用緩衝區先把 debugDumpParams() 的內容接住:
在 MySQL 中,要查詢某張資料量約數十萬筆的 table,不知道為什麼會非常慢才回應,下了 select 後,看似單純的查詢卻要十幾秒才回應,加上最終結果是將三段 select 以 unioin 結合起來,整個 SQL 執行完畢時,常常已經過了 MySQL Workbench 預設的 30 秒逾時時間。
而且很奇怪的是,在 PHP 程式裡,這段 SQL 就會回應得很迅速。
後來同事幫我除錯一下,發現問題是個簡單的小細節,假設我執行很慢的語法是這樣:
昨天總務問我,她要計算計程車車資的合理性,為什麼沒辦法打開任何計程車車資估算工具,她遇到的問題是:
向來都做得很順利的 hg pull,昨天在 TortoiseHg 一直出現 error code 255,做到一半就中斷,會出現「cmdserver: 程序意外結束,代碼 255」。如果看詳細的錯誤訊息,裡面還有個錯誤是 "zstd.ZstdError: zstd decompressor error: Corrupted block detected"。
看不懂發生什麼事、也不知道要怎麼處理,本來想說沒辦法直接透過網路做 hg pull,想要叫對方包成包裹 (bundles) 寄給我,但在對方執行 hg bundle 時,她電腦上會出現另一款錯誤訊息:「abort: empty or missing file data for '某個檔案路徑.docx'」。
在對方電腦上切到工作目錄執行以下指令:
有一台 MacBook Pro 需要拿來執行台灣經濟新報資料庫 (以下簡稱 TEJ 資料庫),但是研究了一下,因為 Office for Mac 無法跑指定的增益集等程式功能,所以還是要裝 Windows 版的 Office。
【安裝 Office】
由於需要在 Windows 作業系統上執行,因此需要先安裝 Parallels Desktop,再安裝 Office。
使用者來電跟我說她們要辦活動,廠商請她們自己設計字卡,配合影片 1080P,指定了圖檔大小要是 1920 px x 1080 px,解析度要存成 72 dpi。
因為字卡的內容主要只是更換文字,沒有額外的設計。為了便於讓使用者自己調整內容、不用互相等來等去,所以建議使用者用 PowerPoint 處理。
因為需要讓手上編寫的網頁符合無障礙標準,所以要安裝 Freego,想說在 macOS 上裝來用看看。
結果到 NCC 的無障礙網路空間服務網的下載專區,下載「單機版檢測工具 Freego 2.0」的 Linux 版後,解壓縮之後打開終端機 (terminal) 視窗,切到目錄、執行主程式:
./freego2_linux
會先出現權限不足的錯誤訊息:
要在 PHP 產出 Word 檔,因為之前用同事導入的 PHPExcel 的體驗還不錯,所以決定這次要用 PHPWord。但是事情沒有我想像的簡單,到 PHPWord 的 Github 專案下載專案檔案後,直接解壓縮 src 目錄放到、專案目錄下,光是要按照 PHPWord 的說明文件產生最基本的檔案,就出現錯誤訊息:
PHP Fatal error: Uncaught Exception: Could not find file '/autoload.php'. It is generated by Composer. Use 'install --prefer-source' or 'update --prefer-source' Composer commands to move forward
回頭從安裝仔細看 PHPWord 的說明裡的安裝步驟,發現要用 copmopser 安裝,才會產生前述的 "Autoloader.php" 檔案。
有個網站昨天從 HTTP 升級成 HTTPS,但今天有部分使用者反映無法連線到該網站。
首先遇到的問題是,該 HTTPS 網站用了特殊 port 8080,而防火牆預設只提供 80 與 443,所以要請網管搭配設定。
防火牆放行後,IE 連線到該網站會出現錯誤訊息: