發表文章

目前顯示的是 11月, 2019的文章

ORA-01858: a non-numeric character was found where a numeric was expected

OCIStmtExecute: ORA-01858: a non-numeric character was found where a numeric was expected 在搜尋或更新欄位時,其中一個欄位是日期格式,但進來的值不是數字,而是一個非數字的值,所造成的錯誤。 SELECT TO_DATE([ 欄位 ],‘YYYY-MM-DD’) FORM [TABLE_NAME] INSERT INTO [TABLE_NAME] ([ 日期欄位 ]) VALUES (TO_DATE([ 值 ],‘YYYY-MM-DD’)) UPDATE [TABLE_NAME] SET [ 日期欄位 ]= TO_DATE([ 值 ],‘YYYY-MM-DD’) PHP 要寫入資料庫時一直這個出現錯誤訊息,原來是把 TO_DATE 放錯地方使用,應該要放在 SQL 內,理解以後感覺犯了一個蠻好笑的錯誤,記錄起來以後不要再犯啦 ! 正確使用方式 $InserDate=’2019-11-10’; $SQL=" INSERT INTO [TABLE_NAME] ([ 日期欄位 ]) VALUES (TO_DATE([:insertdate],‘YYYY-MM-DD’)) "; $stmtSel = $dbc->getConnection()->prepare($SQL); $stmtSel->bindValue(":insertdate", $InserDate); 錯誤使用: $stmtSel->bindValue("TO_DATE([:insertdate],‘YYYY-MM-DD’)", $InserDate);

PHPWord替換文字

圖片
PHPWord 是能用 PHP 產生 Word 檔的函式庫,這裡紀錄使用這套函式庫將 word 檔內的特定段落文字替換掉。 1. 前置準備              首先必須準備已經規劃好的樣本格式 word 檔放入專案執行的目錄中,將要替換的文字用  ${ }  錢字號和大括弧表示,中間塞入一個變數名稱,名稱可自行命名,這裡是使用 ${Value1} 和 ${Value2} 做測試(圖一)。 (圖一)                 關於替換的變數很重要的一點, 不要在 word 檔內直接打上替換變數, 先在記事本或其他文字編輯軟體上打好再複製貼上(圖二) ,否則在執行時不會成功。 (圖二)                 我測試是使用記事本複製貼上,若直接在 word 上打上變數,表面上看不出來有和不同,但將 word 檔另存成 xml 檔在用文字編輯器打開來看其實文字中間被插入了很多空格,不是一個完整的變數。 ${Value1} 是從記事本貼過去的(圖三), ${Value2} 則是直接在打 word 上面,可以看到 ${Value2} 符號和文字中間被插入了很多符號,程式在執行時會無法判讀(圖四)。 (圖三) (圖四) 2. 程式執行               再來就是執行的部分,先將下載下來的 PHPWord 檔案放入專案執行的目錄中,然引用涵式,接著呼叫PHPWord,以下是替換字使用的程式(圖五)和說明: loadTemplat :這裡是去抓前面準備好的 word 檔樣本,路徑和檔名都要打對。 setValue :替換文字, setValue(“word 檔內要被替換的變數名稱,錢字號和大括號這裡不用加上 ”,” 要被替換的文字 ”) save :儲存檔案。可選擇儲存的地方,這裡是存在專案執行...