Time of Update: 2016-06-07
網上倒是有不少Codeigniter資料庫操作的介紹,這裡做一個匯總。複製代碼 代碼如下://查詢: $query = $this->db_query("SELECT * FROM table"); ==================================//result() 返回對象數組$data = $query->result();//result_array() 返回資料$data = $query->result_array();//row()
Time of Update: 2016-06-07
用codeigniter也有一段時間了,一直沒有做什麼總結。現在總結一些Codeigniter操作資料庫表的最佳化寫法,雖說不全,但是也確實可以協助那些剛剛上手CI的同學。連結資料庫複製代碼 代碼如下:$this->load->database();//手動串連資料庫//串連多資料庫$DB1 = $this->load->database('group_one', TRUE);$DB2 = $this->load->database('group_two', TRUE); 查詢複製代碼
Time of Update: 2016-06-07
本樣本Codeigniter註冊登入代碼源自一個codeigniter的項目,現分享下~由於使用了 Active Record 類,一般資料庫操作只有兩層,即是C和Vcontrollers/login.php檔案:複製代碼 代碼如下:class Login extends CI_Controller { private $pass = ''; public function __construct() { parent::__construct ();
Time of Update: 2016-06-07
該程式可以實現:1.同時上傳5張圖片2.同時產生兩種尺寸的縮圖3.儲存到mysqlcontrollers:upload.php檔案:複製代碼 代碼如下:class Upload extends Controller { function go() { if(isset($_POST['go'])) { //初始化 $config['upload_path'] = 'album/source'; $config['allowed_types'] =
Time of Update: 2016-06-07
CodeIgniter過濾HTML危險代碼的方法其實有好幾種,其中最常見的有如下幾種:1.可以選擇使用htmlspecialchars()方法過濾。2.可以將config檔案夾下面的config.php檔案中的$config['global_xss_filtering'] = FALSE;設定為:複製代碼 代碼如下:$config['global_xss_filtering'] = true;但是這樣設定後會加大伺服器的開銷的。所以看情況來設定。3.可以在$this->input->post('
Time of Update: 2016-06-07
初學ThinkPHP的時候,很多人都對execute()和query()方法的區別搞不懂,本文就此淺析二者的區別。大家都知道,ThinkPHP中execute()和query()方法都可以在參數裡直接輸入SQL語句。但是不同的是execute()通常用來執行insert或update等SQL語句,而query常用來執行select等語句。 execute()方法將返回影響的記錄數,如果執行SQL的select語句的話,返回的結果將是表的總記錄數:複製代碼 代碼如下:$model = M(
Time of Update: 2016-06-07
估計不少玩smarty模板的小朋友都遇到過裁切亂碼問題。特別是UTF8編碼的。以下代碼儲存為modifier.truncate2.php 存到smarty libs下的plugin目錄下然後裁剪的時候用$v->content|truncate2:100就搞定了。如果不好用可能是緩衝導致,請速度刪除templates_c下的快取檔案(小編搞的時候遇到緩衝問題。)複製代碼 代碼如下:/** * Smarty plugin * @package Smarty * @subpackage
Time of Update: 2016-06-07
很多時候我們在用smarty時,並不希望緩衝整個頁面,例如天氣、股票等這類即時更新的資訊。那麼我們可以讓其不緩衝,常見的實現有如下3種方法:1.insert 法:Insert 函數類似於 inluce 函數,不同之處是 insert 所包含的內容不會被緩衝,每次調用該模板都會重新執行該函數。比如說我們定義一個顯示時間的函數:複製代碼 代碼如下:function insert_get_current_time() {return date("H:i:s");} //然後在模板中:{insert
Time of Update: 2016-06-07
thinkPHP的F方法只能用於緩衝單一資料型別,不支援有效期間和緩衝對象。S()緩衝方法支援有效期間,又稱動態緩衝方法,使用樣本如下:複製代碼 代碼如下:// 使用data標識緩衝$Data資料S('data',$Data); //前面的是緩衝標示,後面的是緩衝的資料複製代碼 代碼如下:// 緩衝$Data資料3600秒S('data',$Data,3600);複製代碼 代碼如下:// 刪除快取資料S('data',NULL); //第一個參數時緩衝的標識名 複製代碼
Time of Update: 2016-06-07
初學ThinkPHP時,ThinkPHP中的關聯模型有一處易錯點,現舉例如下:需用到的表:id_elite_major和id_elite_student代碼舉例如下:複製代碼 代碼如下:class EliteMajorModel extends RelationModel{protected $_link=array('EliteStudent'=>array('mapping_type'=>HAS_MANY, //易錯點: 此處在 HAS_MANY 時常會加上 '' 容易寫成
Time of Update: 2016-06-07
作為一種常用的設計模式,單例模式被廣泛的使用。那麼如何設計一個單例才是最好的呢?通常我們會這麼寫,網上能搜到的例子也大部分是這樣:複製代碼 代碼如下:class A{ protected static $_instance = null; protected function __construct() { //disallow new instance } protected function __clone(){
Time of Update: 2016-06-07
通常volist標籤多用於查詢資料集(select方法)的結果輸出,通常模型的select方法返回的結果是一個二維數組,對此可以直接使用volist標籤進行輸出。在控制器中首先對模版賦值,如下例所示:$User = M('User');$list =
Time of Update: 2016-06-07
CI架構內建的zip類簡單實用,本文就來簡單說一下CI架構的zip類的使用。首先需要匯入zip類:複製代碼 代碼如下:$this->load->('zip');此外,但是考慮到CI的結構,還需要設定一下自動載入類,把zip載入進去。也可以在設定的時候,統一載入。大家如果遇到這個問題可能就是自動載入沒有載入zip類。具體調用方法如下:複製代碼 代碼如下:$path = $_SERVER['DOCUMENT_ROOT'];//需要壓縮的檔案夾路徑$this->zip->read_dir($path,
Time of Update: 2016-06-07
ThinkPHP的I方法是眾多單字母函數中的新成員,其命名來自於英文Input(輸入),主要用於更加方便和安全的擷取系統輸入變數,可以用於任何地方,用法格式如下:I('變數類型.變數名',['預設值'],['過濾方法'])變數類型是指請求方式或者輸入類型。各個變數類型的含義如下: 變數類型 含義 get 擷取GET參數 post 擷取POST參數 param
Time of Update: 2016-06-07
Twig是一款快速、安全、靈活的PHP模板引擎,它內建了許多filter和tags,並且支援模板繼承,能讓你用最簡潔的代碼來描述你的模板。他的文法和Python下的模板引擎Jinjia以及Django的模板文法都非常像。 比如我們在PHP中需要輸出變數並且將其進行轉義時,文法比較累贅:複製代碼 代碼如下:但是在Twig中可以這樣寫:複製代碼 代碼如下:{{ var }}{{ var|escape }}{{ var|e }} {# shortcut to escape a
Time of Update: 2016-06-07
一、基礎知識1.手機APP的類型移動端的應用有這幾種:WebApp,NativeApp,HybridApp。WebApp 就是手機網站,需要用手機瀏覽器訪問。NativeApp是用原生語言開發,使用者需要下載安裝的手機應用。 NativeApp的開發成本很高,每個平台的開發語言都不一樣, 比如IOS的開發語言是object C , Android系統的APP需要用Java開發, WindowsPhone 則需要用 C#
Time of Update: 2016-06-07
很多程式員在CI中使用session的時候,開啟自動載入session之後網站就報錯了,具體錯誤資訊如下:In order to use the Session class you are required to set an encryption key 下面一起來看問題解決辦法。提示資訊說明:如果想用session類的話就必須要設定一個加密的密鑰!那就給設定一個吧,畢竟也是出於安全考慮。開啟application/config/config.php找到Encryption Key複製代碼
Time of Update: 2016-06-07
實現國際化的方式比較多,很多php framework都內建i18n支援,但大部分是基於PHP的數組實現的,這種方法並不推薦。目前最為流行也最通用的方法是gettext。Gettext 用於系統的國際化(I18N)和本地化(L10N),可以在編譯器的時候使用本國語言支援(Native Language Support(NLS)),其可以使程式的輸出使用使用者佈建的語言而不是英文. 關於gettext的更多資料請參見: 下面說說如何利用gettext在你的PHP程式中實現國際化。一、檢查環境需求
Time of Update: 2016-06-07
很多程式員在使用codeigniter CLI下執行一個大批量資料匯入的問題時,會一直出現記憶體過高的情況,下面對此分析器原因及解決辦法。CI db會將所有的查詢sql和和sql執行時間儲存下來,對於類似百萬級大資料量的匯入問題來說,其執行的sql記錄都會被儲存在內容中,這就佔用了大量的內容直至指令碼結束。解決辦法:當你執行大數量的db操作時,記得設定:複製代碼 代碼如下:$this->db->save_queries = FALSE;
Time of Update: 2016-06-07
ThinkPHP CURD方法的table方法也屬於模型類的連貫操作方法之一,該方法主要用於指定操作的資料表。具體用法如下:一般情況下,操作模型的時候系統能夠自動識別當前對應的資料表,所以,使用table方法的情況通常是為了:1.切換操作的資料表;2.對多表進行操作;例如:$Model->table('think_user')->where('status>1')->select();也可以在table方法中指定資料庫,例如:$Model->table('db_name.think_user')