Archive

Posts Tagged ‘CodeIgniter’

CodeIgniter 設定 MySQL 編碼

十二月 22nd, 2007

※ CodeIgniter 1.6 已釋出,不需再做這篇的修正了哦!

先前有提到CodeIgniter 這個 PHP Framework,也用它做了幾個 case,當然開發速度不能說快上多少,但確實讓程式碼變得整齊優雅許多。

使用 CI 目前遇到第一個問題是存取 MySQL 資料的問題,在 MySQL 4.1 以後採用了多層式編碼設定,簡單說就是不管是資料庫、資料表、欄位或是 Client 連線階段,都可以分別設定編碼,所以即使 server 都改成了 utf8,PHP 到 MySQL Server 的這個 connection 卻還是預設的(latin1),許多亂碼就是這樣造成的,應該已經有不少人知道解決方法,就是先送出一個改變編碼的查詢:SET NAMES 'charset'。
然而目前 CodeIgniter 並沒有這樣的設計,所以只好自行改 code 囉!

Step1:修改 system/application/config/database.php
增加一項:$db['default']['charset'] = "utf8";

Step2:修改 system/database/DB_driver.php
在 32 行之後的宣告增加:var $charset = '';
接著 96 行的陣列增加:'charset' => '',

Step3:修改 system/database/drivers/mysql/mysql_driver.php
74 行 return 前加入:


if (!empty($this->charset))
{
    @mysql_query("SET NAMES $this->charset");
}

這樣就 ok 了,如果使用 mysqli 請如法炮製。另外如果主機環境符合,可使用 PHP 內建函式來設定:


// PHP >= 5.2.3,MySQL >= 5.0.7 for mysql
@mysql_set_charset($this->charset, $this->conn_id);
// PHP >= 5.0.5,MySQL >= 5.0.6 for mysqli
@mysqli_set_charset($this->conn_id, $this->charset);

PHP, 程式筆記 , , ,

CodeIgniter - PHP Framework

七月 28th, 2007

最近在 PTT 的 PHP 版看到有人提到了這個 PHP Framework - CodeIgniter,當然也好奇的稍微瞭解一下囉!

目前 PHP 最受矚目的應該是剛釋出正式版的 Zend FrameworkCakePHP 了,都是很不錯,但是 Zend 僅支援 PHP5,現在還有不少學校、企業都還沒升級;而 CakePHP 則學習曲線稍長,想馬上用來開發小型應用效果不一定會比較好。

這時可以試試 CodeIgniter,應該也是不錯的選擇。沒有很龐大複雜的類別庫,有基本的 MVC 模式,也有所謂的 Helpers 幫你完成一些常用的功能,官方手冊也寫的很清楚,算是滿容易上手的一個 Framework。

PHP, 程式筆記 , ,