>
快捷搜索:

Drupal7中常用的数据库操作实例_php实例_脚本之家

- 编辑:皇家国际app -

Drupal7中常用的数据库操作实例_php实例_脚本之家

1.插入单条记录复制代码 代码如下:db_insert->fields(array('field1' => 'value1', 'field2' => 'value2', 'fieldn' => $valuen))->execute();

命令类:1.命令剧中人物:注明了一个给持有具体命令类的悬空中接力口。那是二个架空脚色。2.实际命令剧中人物:定义贰个选拔者和作为之间的弱耦合;达成execute方法,担负调用接纳的照顾操作。execute(卡塔尔方法平日可以称作施行办法3.客商角色:创设三个栩栩如生命令对象并规定其选择者。4.哀告者角色:肩负调用命令对象施行央求,相关的办法叫做行动方法。5.选拔者剧中人物:担当具体施行和奉行一个倡议。功能:1.浮泛出待实施的动作以参数化对象。2.在不相同的时刻钦点、排列和实践要求。3.援助撤消操作4.帮忙改正日志

一、 抽象类abstract class

  1. call_user_func

call_user_func函数是当必要动态调用函数时,才使用的,这些函数有三种用法:第意气风发种是调用孤独的函数:复制代码 代码如下:第两种是调用类内部的函数:复制代码 代码如下:上面这几个例子,本人运营一下看看结果是怎么样吗~嘿嘿~提醒一下func_get_args(卡塔尔(قطر‎函数是得到传入到函数中的参数,再次来到多个数组,func_num_args(卡塔尔函数获取传入函数中的参数的个数。

2.插入多条记下复制代码 代码如下:$values[] = array('field1' => 'val1', 'field2' => 'val2', 'fieldn' => $valn);$values[] = array('field1' => 'value1', 'field2' => 'value2', 'fieldn' => $valuen);$query = db_insert->fields(array('field1', 'field2', 'fieldn'));foreach { $query->values;}$query->execute();

复制代码 代码如下:_receiver = $receiver; } public function execute(){ $this->_receiver->action(); }}//接受者class Receiver{ private $_name; public function __construct{ $this->_name = $name; } //行动措施 public function action(卡塔尔国{ echo $this->_name.'do action .
'; }}//请求者class Invoker{ private $_command; public function __construct{ $this->_command = $command; } public function action(){ $this->_command->execute(); }}//客户端class Client{ public static function main(){ $receiver = new Receiver; $command = new ConcreteeCommand; $invoker = new Invoker; $invoker->action;?>

1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类措施 function 关键字前加了 abstract 关键字)的类。

复制代码 代码如下:function a{echo $b;echo $c;}call_user_func;call_user_func;//显示 111 222 333 444?>

下边再来看看call_user_func_array函数这些函数也是当须要动态调用函数时用到的,它的用法和call_皇家国际app,user_func函数相比较像,只是参数字传送入的是数组。复制代码 代码如下:

3.创新某条记下

2 .抽象类不可能被直接实例化。抽象类中只定义子类须求的方式。子类能够经过三回九转抽象类并透过兑现抽象类中的全部抽象方法,使抽象类具体化。

调用类内部的诀窍比较奇怪,居然用的是array,不晓得开采者是哪些寻思的,当然省去了new,也是满有新意的:

call_user_func_array函数也足以调用类内部的方法的复制代码 代码如下:

复制代码 代码如下:db_update ->condition ->fields(array('address' => 'Go West St.')) ->execute();//等同于:

3 .借使子类须求实例化,前提是它达成了抽象类中的全数抽象方法。假诺子类未有任何兑现抽象类中的全部抽象方法,那么该子类也是三个抽象类,必得在 class 后边加上 abstract 关键字,并且不可能被实例化。

复制代码 代码如下:class a {function b{echo $c;}}call_user_func,"111");//显示 111?>

$bc = $b + $c; echo $bc; }

UPDATE {imports} SET address = 'Go West St.' WHERE name = 'Chico';4.删减某条记下

复制代码 代码如下:abstract class A { /** 抽象类中能够定义变量 */protected $value1 = 0; private $value2 = 1; public $value3 = 2; /** 也得以定义非抽象方法 */public function my_print() { echo "hello,world/n"; } /** * 大好多场馆下,抽象类最少含有一个虚无方法。抽象方法用abstract关键字证明,在这之中不可能有具体内容。 * 能够像注明普通类形式那样表明抽象方法,不过要以分号并不是方法体截至。也正是说抽象方法在抽象类中不可能被落成,也正是未有函数体“{some codes}”。 */abstract protected function abstract_func1(); abstract protected function abstract_func2(); } abstract class B extends A { public function abstract_func1() { echo "implement the abstract_func1 in class A/n"; } /** 这么写在zend studio 第88中学会报错*///abstract protected function abstract_func2(); } class C extends B { public function abstract_func2() { echo "implement the abstract_func2 in class A/n"; } }

  1. call_user_func_array

}call_user_func_array, array;//彰显333?>下边再看贰个动态调用函数的例子:复制代码 代码如下:

复制代码 代码如下:db_delete ->condition ->execute(State of Qatar;5.联结记录

4 .假使像下边这样创立了一个一而再自 A 的子类 B ,可是不达成抽象方法 abstract_func() :

call_user_func_array函数和call_user_func很相同,只然而是换了风流洒脱种艺术传送了参数,让参数的构造更清晰:复制代码 代码如下:function a{echo $b;echo $c;}call_user_func_array('a', array;//显示 111 222?>call_user_func_array函数也得以调用类内部的办法的复制代码 代码如下:Class ClassA{function bc { $bc = $b + $c;echo $bc;}}call_user_func_array, array;//显示 333?>

复制代码 代码如下:db_merge ->key(array ->insertFields(array('age' => 31,'name' => '梅瑞狄斯'卡塔尔(قطر‎卡塔尔 ->updateFields(array ->execute(卡塔尔;//即使存在job为Speaker的一条记下,则更新name为Tiffany,假使不设有,就插入一条age为31,name为梅瑞狄斯,job为Speaker的记录。

复制代码 代码如下:Class B extends A{};

call_user_func函数和call_user_func_array函数都扶持引用,那让他俩和平时的函数调用更趋势功用相同:

6.对数据库某字段值自动加意气风发或然自增。

那么程序将现出以下错误:

Drupal7中常用的数据库操作实例_php实例_脚本之家,php设计形式之命令情势应用示例_php实例_脚本之家。复制代码 代码如下:function a{$b++;}$c = 0;call_user_func;echo $c;//显示 1call_user_func_array;echo $c;//显示 2

复制代码 代码如下:db_update ->expression ->condition('field1', $some_value) ->expression('field2', 'field2 + :inc', array ->execute();

复制代码 代码如下:Fatal error: Class B contains 1 abstract method and must therefore be declared abstract or implement the remaining methods

7.查询数据库某字段为另风华正茂别称

5 .要是 B 实现了抽象方法 abstract_func() ,那么 B 中 abstract_func()方法的访谈调整不可能比 A 中 abstract_func(State of Qatar 的访谈调节更严刻,也正是说:

本文由皇家国际app发布,转载请注明来源:Drupal7中常用的数据库操作实例_php实例_脚本之家