PDO 連接 MySQL

PHP 連接 MySQL 可以很簡單直接地 mysql_connect() 或 mysqli_connect(), 那麼為什麼是要 PDO? PDO 是功能更為強大的資料庫 API, 即使將來要轉換資料庫系統, 只需更改連接的參數, 不需每個出現 mysql_* 函式的程式碼都修改, 以往要做到這樣, 通常是寫一個簡單的連接 MySQL class, 或者直接用 ADOdb 之類來做。 另一個優點是 PDO 會自動將用戶的輸入清理乾淨, 即防止 SQL …

PHP 加密資料

要儲存一些敏感的資料在檔案或資料庫, 基於安全考慮還是將資料加密, 在需要時再進行解讀, 在 PHP 5.5 開始內建了加密函式 password_hash(), 操作上簡單了不少。如果在其他 PHP 版本, 便需要載入加密的相關模組, 以下是不同版本實現的方法: PHP 5.5 或以上: 要驗證用戶輸入的密碼, 可以用 password_verify(): 未到 PHP 5.5, 但在 5.3.7 或以上 (包括 Redhat PHP 5.3.3 …

PHP 日期計算

PHP 在 5.3 前要計算日期很麻煩, 在 PHP 5.3 開始已經內建相關函式, 計算日期變得簡單很多, 例如要計算兩個日期的差距, 可以這樣: 而且輸入的日期格式限制很少, 例如上面的日期格式可以輸入 2015-05-12, 或者 12-05-2015 也可以。 上面的例子是計算兩個日期相距的天數, 如果要計算往後 X 天的日期, 可以這樣做:

同時運行多個 MySQL

有時需要在不同 MySQL 版本間做測試, 如果要在伺服器內重啟 MySQL 切換版本做測試會很麻煩, 以下紀錄一下在伺服器內安裝兩個 MySQL 同時運行, 當然如果有需要, 也可以按此方法安裝 2 個以上的 MySQL。 以下假設第一個 MySQL Server 已經正常運作, 下面全是安裝第二個 MySQL Server 的步驟: 1. 建立 MySQL 資料庫目錄: # mkdir /var/lib/mysql2 …

變更 MySQL 預設埠號

MySQL 的預設埠號是 3306, 要變更埠號可以有很多原因, 例如基於安全考量或者同時安全兩個 MySQL Server 等, 以下是變更埠號的方法: 1. 開啟 my.cnf 檔案, Redhat 及 CentOS 開 /etc/my.cnf, Debian 放在 /etc/mysql/my.cnf。 加入以下這行到 段落, 如果已經有 port 的選項, 直接修改便可以, 下面會將埠號改為 3307: …

RHEL / CentOS 安裝 PIP

PIP 是 Python 的套件管理工具, 以下紀錄一下在 RHEL / CentOS 安裝 PIP 的方法: 首先要安裝 EPEL repo, 不同版本需要安裝不同的 rpm: RHEL / CentOS 7.x (x86_64) rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm RHEL / CentOS 6.x (x86_64) …

MySQL 找出重複資料

MySQL 資料庫出現重複資料時, 找出重複資料的方法有很多, 以下介紹兩種常用的方法: 找出重複的紀錄, 以 cid 欄位作為判斷, 會輸出 cutomer_id 及出現次數: SELECT cid, COUNT(*) FROM customer GROUP BY cid HAVING COUNT(*) > 1 不是顯示出現次數, 而是將重複的資料全部輸出: select * from customer …

PHP 檢查 Email 及 URL 格式

要檢查 Email 及 URL 格式可以用正規表達式來做, 以下兩個正規表達式分別可以檢查 Email 及 URL 的格式是否正確。但要留意, 以下程式碼只會檢查格式, 而不會檢查兩者的有效性, 要檢查有效性及真實性需要用其他方法。 PHP 檢查 Email 格式 PHP 檢查 URL 格式

免費資料救援軟件

如果不小心將有用的資料錯誤刪除或格式化, 使用資料救援軟件還是有機會救回的。最重要是錯誤刪除資料後, 不要再寫入資料到硬碟, 以免新寫入的資料覆蓋誤刪資料, 救回資料的機會及數量都會較多。這裡介紹幾款免費資料救援工具, 紀錄一下以備不時之需。 但一般上資料救援工具對中文檔案及資料夾支援較差, 救回後的資料檔案及資料夾名稱會不同, 我也試過救回的檔案是英文檔名, 但太長的檔案也被截斷, 所以要留意救回的資料檔案名稱不同的情況。 TestDisk & PhotoRec 雖然 TestDisk 是 DOS 命令模式工具, 但我個人還是十分推薦的, 記得在幾年前我錯誤格式化了數碼相機的 SD 咭, 用過另外兩款救援軟件都不能救回資料, 還怕被當時的女朋友 (現在的老婆) 狠狠罵一頓, 結果 TestDisk …