- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP也能实现java bean类似的自动赋值
PHP也能实现java bean类似的自动赋值
前些天用Struts写个小东西玩玩,发现在struts中表单对action form是自动进行赋值的。也就是说,只要JAVA BEAN里面的属性名与页面表单中对应的input名是严格对应的就可以自动赋值。感觉很有意思,PHP是自己最喜欢的WEB编程语言,就想试着在PHP中也实现这个功能,没想到查了一下PHP的手册中关于反射的部分,发现真是太Easy了。在项目中应用了一下感觉太爽了。不仅实现了自动赋值,可以说还实现了自动取值,至少方便了特别多。
只要在调用的时候
;
$foo-setValues();//就完成了自动赋值的过程。原来要写多个个XX=$_POST[XX]啊
如果要取实体类的值也十分方便
$foo-setValues();//取得需要进行查询必须的部分属性值其实只要取一个KEY就成了。
,所有的属性值就都被数据表中的对应数据填充了。
跟大家分享一下。
以往如果对一个数据表进行封装,一般会写一个对应的类文件,用来读写数据。就象下面这个这样。
* 此apply数据表封装是由《数据表封装类自动生成工具1.0》生成.
目前此工具任处于完善过程中,有意见或建议请 mail:jy@cjlu.edu.cn
require_once(dbc.php);//数据库连接文件,我用的是ADO
public $TSBH;//提示编号
public $TSLB;//提示类别
public $TSNR;//提示内容
public $PF;//评分
/**
* 对实例各属性进行赋值
*
*/
public function setValues(){
//如果实体类对应的数据表有30个字段,这部分将会超级长
$this-TSBH=$_POST[TSBH];
$this-TSLB=$_POST[TSLB];
$this-TSNR=$_POST[TSNR];
$this-PF=$_POST[PF];
}
/**
* 保存数据
*一般在调用前需要调用getValues()从WEB表单中获取数据自动为各属性进行赋值
*@return 更新或写入的数据条数
**/
public function save(){
global $MyDB;
$sql=select TSBH from cvts_tips where TSBH=$this-TSBH;
$MyDB-query($sql);
if($MyDB-Affected_Rows()=1){
$sql=update cvts_tips set TSBH=$this-TSBH,TSLB=$this-TSLB,TSNR=$this-TSNR,PF=$this-PF where TSBH=$this-TSBH;
}else{
$sql=insert into cvts_tips (TSBH,TSLB,TSNR,PF) values($this-TSBH,$this-TSLB,$this-TSNR,$this-PF);
}
$MyDB-query($sql);
return $MyDB-Affected_Rows();
}
public function delValue(){
global $MyDB;
$sql=delete from cvts_tips where TSBH=$this-TSBH;
$MyDB-query($sql);
return $MyDB-Affected_Rows();
}
/**
* 根据提示编号来查询数据表中的信息并为实例各属性进行赋值
*
*/
public function getDetail(){
global $MyDB;
$sql=select * from cvts_tips where TSBH=$this-TSBH;
$rs=$MyDB-query($sql);
if($rs){
$row=$rs-fetchRow();
//如果实体类对应的数据表有30个字段,这部分将会超级长
$this-TSBH=$row[TSBH];
$this-TSLB=$row[TSLB];
$this-TSNR=$row[TSNR];
$this-PF=$row[PF];
}
}
/**
* 根据日期加随机数生成一个字符串。
*T
原创力文档


文档评论(0)