Fleaphp常見(jiàn)函數(shù)功能與用法示例
本文實(shí)例講述了Fleaphp常見(jiàn)函數(shù)功能與用法。分享給大家供大家參考,具體如下:
1. FLEA_Db_TableDataGateway::update()用法:
例如:修改一條 uid=22 的記錄, name字段改成"11", pass字段改成"22",就要這樣寫:
$data = array('uid'=>22,'name'=>11,'pass'=>22); $table->update($data);
2. FLEA_Db_TableDataGateway::updateByConditions()用法:
例如:更新所有 level_ix = 3 的記錄,并且把這些記錄的特定字段(由 $row 確定)都更新為指定的值。
$row = array( 字段 => 字段值 字段 => 字段值 字段 => 字段值 字段 => 字段值 ); $conditions = array('level_ix' => 3); $table->updateByConditions($conditions, $row);
3. FLEA_Db_TableDataGateway::updateField()用途:更新記錄的指定字段,返回更新的記錄總數(shù)
例如:以查找滿足$conditions的條件,修改其中字段為class_id的值為$targetId.
$sourceId = $_POST['source']; $targetId = $_POST['target']; $conditions = array('class_id' => $sourceId); $table->updateField($conditions,'class_id',$targetId);
4. FLEA_Db_TableDataGateway::updateRowset ()用途:更新記錄集(多行記錄)
用法和update ()類似,只不過(guò)是修改多條記錄:
例如:
$data =array(array('id'=>'2','name'=>'111','job'=>'111'),array('id'=>'3','name'=>'222','job'=>'222')); $arr=$this->_test->updateRowset($data);
想必大家能看明白吧...呵呵。。。
一定注意:$data 一定要是二維的,即使用updateRowset ()修改一條記錄也要這樣寫:
$data=array(array('id'=>'2','name'=>'111','job'=>'111'));
說(shuō)得清不清楚啊?呵呵
5. FLEA_Db_TableDataGateway::create ()用途:插入一條新記錄,返回新記錄的主鍵值
例如:
$data = array(array('uid'=>22,'name'=>11,'pass'=>22),array('uid'=>23,'name'=>12,'pass'=>23)); $table->create($data);
6. FLEA_Db_TableDataGateway::createRowset()插入多行記錄,返回包含所有新記錄主鍵值的數(shù)組
例如:
$data = array(array('uid'=>22,'name'=>11,'pass'=>22),array('uid'=>23,'name'=>12,'pass'=>23)); $table->createRowset($data);
7. FLEA_Db_TableDataGateway::remove () 刪除一條記錄,條件必須為主鍵
例如:
remove(array("id"=>"2"));
8. FLEA_Db_TableDataGateway::removeByConditions ()看名知義,當(dāng)然是刪除符合條件的記錄嘍
正常情況下和remove()的條件可以通和,如果對(duì)有多個(gè)主鍵的表進(jìn)行刪除操作:
conditions = array( '主鍵1' => xxx, '主鍵2' => yyy, '主鍵3' => zzz, ) $table->removeByConditions($conditions);
另注意一點(diǎn):如果某個(gè)表有多個(gè)主鍵的話,那么它所對(duì)應(yīng)的Model中的 $primaryKey 只能設(shè)置為一個(gè)最常用的主鍵,不能設(shè)置為一個(gè)數(shù)組
9. & FLEA_Db_TableDataGateway::findBySql ()用途:直接使用 sql 語(yǔ)句獲取記錄
例如:
$arr=$this->_test->findBySql('SELECT * FROM newtable');
10. FLEA_Db_TableDataGateway::decrField ()用途:減小符合條件的記錄的指定字段的值,返回更新的記錄總數(shù) (該操作不會(huì)引發(fā)任何事件,也不會(huì)處理關(guān)聯(lián)數(shù)據(jù))。
例如:
$arr=$this->_test->decrField(array('id'=>'3'),'prize',$decr = 2);
注意:$decr默認(rèn)值為1,數(shù)字2是本人自己改的,當(dāng)然你也可以改為34568了,改幾就減幾,明白了吧。。。
11. FLEA_Rbac_UsersManager::updatePasswordById ()用途:直接更新密碼
例如:把ID為1的密碼設(shè)為00000
$arr=$this->_student->updatePasswordById ('1','000000');
注意:前提是數(shù)據(jù)庫(kù)中一定要有叫做Password的字段;修改后的密碼是加密的。
12. FLEA_Rbac_UsersManager::checkPassword ()用途:檢查密碼的明文和密文是否符合
例如:
$user = $usersManager->findByUsername('andy'); $usersManager->checkPassword('000000', $user[$usersManager->passwordField]))
13. FLEA_Rbac_UsersManager::encodePassword ()用途:將密碼明文轉(zhuǎn)換為密文
例如:
$user = $this->_student->findByUsername('andy'); $arr=$this->_student->encodePassword($user[$this->_student->passwordField]); $this->_student->updatePassword($user[username],$arr);
注意:前提是數(shù)據(jù)庫(kù)中一定要有叫做Password的字段;
14. FLEA_Rbac_UsersManager::updatePasswordById ()用途:直接更新密碼
這個(gè)我不說(shuō)了啊,我想聰明的你一看例11就會(huì)明白了
15. FLEA_Db_TableDataGateway::updateByConditions ()用途:更新符合條件的記錄,成功返回更新的記錄總數(shù)
例如:
$condition=array('id'=>2); $row=array('name'=>'nicholas'); $this->_test->updateByConditions($condition,$row);
16. FLEA_Db_TableDataGateway::updateField () 用途:更新記錄的指定字段,返回更新的記錄總數(shù) 該操作不會(huì)引發(fā)任何事件,也不會(huì)處理關(guān)聯(lián)數(shù)據(jù)。
例如:修改id為2的記錄,把字段為name的值修改為vin就要這么寫:
$condition=array('id'=>2); $this->_test->updateField($condition,'name','vin');
17. FLEA_Db_TableDataGateway::incrField () 用途:增加符合條件的記錄的指定字段的值,返回更新的記錄總數(shù)
例如:這個(gè)也不說(shuō),去看例10吧,但要注意,例10是減,這個(gè)是加,嘿嘿。。。
18. FLEA_Db_TableDataGateway::replaceRowset () 用途:替換記錄集(多行數(shù)據(jù)),返回記錄集的主鍵字段值,失敗返回 false
$condition=array(array('id'=>2,'name'=>nicholas,'job'=>good)); $this->_test->replaceRowset($condition);
注意:
① 假設(shè)表中有id,name,job,prize等,如果在$condition中沒(méi)寫prize字段,會(huì)就默認(rèn)插入空,原有的數(shù)據(jù)會(huì)被清除,如不注意,也許會(huì)丟失數(shù)據(jù)
② $condition一定是二維的
19. FLEA_Db_TableDataGateway::removeAll ()用途:刪除所有記錄,用時(shí)要謹(jǐn)慎
例如:
$this->_test->removeAll ();
20. FLEA_Db_TableDataGateway::removeAllWithLinks ()用途:刪除所有記錄及關(guān)聯(lián)的數(shù)據(jù)
注意:這個(gè)更加要慎用,所有與這個(gè)表有關(guān)聯(lián)的表數(shù)據(jù)都將被刪除,何謂有關(guān)聯(lián),也就是說(shuō),此表中的某個(gè)字段可能是另外一個(gè)表中的外鍵,此謂之有關(guān)聯(lián)。
例如:
在MODEL中一個(gè)叫做com的表關(guān)聯(lián)了一個(gè)叫做student的表,com表中的uid是student表中的外鍵,那么我們就說(shuō)這兩個(gè)表關(guān)聯(lián)起來(lái)了,是用下面的方法關(guān)聯(lián)起來(lái)的
class Model_com extends FLEA_Db_TableDataGateway { var $tableName = 'newtable'; var $primaryKey = 'uid'; var $hasOne=array('tableClass' => 'Model_student', 'foreignKey' => 'uid', 'mappingName'=>'jobs'); }
這時(shí),我們執(zhí)行下面的語(yǔ)句:
$this->_test =& FLEA::getSingleton('Model_com'); $this->_test->removeAllWithLinks();
更多關(guān)于Fleaphp相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Symfony框架入門教程》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Fleaphp框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
THINKPHP3.2使用soap連接webservice的解決方法
這篇文章主要為大家詳細(xì)介紹了THINKPHP3.2使用soap連接webservice的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12thinkphp3.2實(shí)現(xiàn)在線留言提交驗(yàn)證碼功能
這篇文章主要為大家詳細(xì)介紹了TP3.2寫提交的驗(yàn)證碼驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07php for 循環(huán)使用的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇php for 循環(huán)使用的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06iis 7下安裝laravel 5.4環(huán)境的方法教程
最近想嘗試體驗(yàn)下laravel框架,所以自己嘗試在iis 7下安裝laravel 5.4環(huán)境,雖然遇到些問(wèn)題,但最終都解決了,所以下面這篇文章主要給大家介紹了在iis 7下安裝laravel 5.4環(huán)境的方法教程,需要的朋友可以參考下。2017-06-06laravel數(shù)據(jù)庫(kù)查詢結(jié)果自動(dòng)轉(zhuǎn)數(shù)組修改實(shí)例
這篇文章主要介紹了laravel數(shù)據(jù)庫(kù)查詢結(jié)果自動(dòng)轉(zhuǎn)數(shù)組修改實(shí)例,有需要的同學(xué)可以借鑒參考下2021-02-02Yii2數(shù)據(jù)庫(kù)操作常用方法小結(jié)
這篇文章主要介紹了Yii2數(shù)據(jù)庫(kù)操作常用方法,結(jié)合實(shí)例形式總結(jié)分析了Yii2常用的增刪查改及配置相關(guān)操作技巧,需要的朋友可以參考下2017-05-05