前端一直使用PHP5,的确使用起来特别的爽,现在为了能在俺的虚拟主机上跑,不得不改成PHP4的。这几个库类我以前发在PHPCHIAN,地址是http://www.PHPchina.com/bbs/viewthread.PHP?tid=5687&highlight=。(前几天在网上搜索了下,发现很多转载我的这几篇文章都没有说明出处,而且把我的版权都删除了,气晕了。) 昨天改写了数据库操作类,恰好在我简化zendFramework也能用到。 代码如下:
<?PHP
/
filename:DB_MysqL.class.PHP
@package:PHPbean
@author:feifengxlq<[email]feifengxlq@gmail.com[/email]>
@copyright:Copyright2006feifengxlq
@license:version1.2
create:2006-5-30
modify:2006-10-19byfeifengxlq
description:theinterfaceofMysqL.
example:
////////////Selectaction(Firstmode)//////////////////////////////
$MysqL=newDB_MysqL("localhost","root","root");
$rs=$MysqL->query("selectfromtest");
for($i=0;$i<$mysql->num_rows($rs);$i++)
$record[$i]=$MysqL->seek($i);
print_r($record);
$MysqL->close();
////////////Selectaction(Secondmode)//////////////////////////////
$MysqL=newDB_MysqL("localhost","root");
$rs=$MysqL->execute("selectfromtest");
print_r($rs);
$MysqL->close();
/////////////insertaction////////////////////////////
$MysqL=newDB_MysqL("localhost","root");
$MysqL->query("insertintotest(username)values('testfrommyDB_MysqL')");
printf("%s",$MysqL->insert_id());
$MysqL->close();
/
classMysqL{ /private:connectionparameters/
var$host="localhost";
var$database="";
var$user="root";
var$password=""; /private:configurationparameters/
var$pconnect=false;
var$debug=false; /private:resultarrayandcurrentrownumber/
var$link_id=0;
var$query_id=0;
var$record=array(); /
construct
@paramstring$host
@paramstring$user
@paramstring$password
@paramstring$database
*/
functionconstruct($host="localhost",$user="root",$password="",$database="")
{
$this->set("host",$host);
$this->set("user",$user);
$this->set("password",$password);
$this->set("database",$database);
$this->connect();
} /*
setthevaluefortheparamofthisclass
@paramstring$var
@paramstring$value
/
functionset($var,$value)
{
$this->$var=$value;
}
/*
connecttoaMysqLserver,andchoosethedatabase.
@paramstring$database
@paramstring$host
@paramstring$user
@paramstring$password
@returnlink_id
*/
functionconnect($database="",$host="",$user="",$password="")
{
if(!empty($database))$this->set("database",$database);
if(!empty($host))$this->set("host",$host);
if(!empty($user))$this->set("user",$user);
if(!empty($password))$this->set("password",$password);
if($this->link_id==0)
{
if($this->pconnect)
$this->link_id=@MysqL_pconnect($this->host,$this->user,$this->password);
else
$this->link_id=@MysqL_connect($this->host,$this->password);
if(!$this->link_id)
die("MysqLConnectErrorin".FUNCTION."():".MysqL_errno().":".MysqL_error());
if(!@MysqL_select_db($this->database,$this->link_id))
die("MysqLSelectdatabaseErrorin".FUNCTION."():".MysqL_errno().":".MysqL_error());
}
return$this->link_id;
} /
queryasqlintothedatabase
@paramstring$strsql
@returnquery_id
*/
functionquery($strsql="")
{
if(empty($strsql))die("MysqLError:".FUNCTION."()strsqlisempty!");
if($this->link_id==0)$this->connect();
if($this->debug)printf("Debugquerysql:%s",$strsql);
$this->query_id=@MysqL_query($strsql,$this->link_id);
if(!$this->query_id)die("MysqLqueryfail,Invalidsql:".$strsql.".");
return$this->query_id;
} /*
queryasqlintothedatabase,whileitisdiffererntfromthequery()method,
thismethodwillreturnarecord(array);
@paramstring$strsql
@paramstring$style
@return$recordisaarray()
/
functionExecute($strsql,$style="array")
{
$this->query($strsql);
if(!empty($this->record))$this->record=array();
$i=0;
if($style=="array"){
while($temp=@MysqL_fetch_array($this->query_id)){
$this->record[$i]=$temp;
$i++;
}
}else{
while($temp=@MysqL_fetch_object($this->query_id)){
$this->record[$i]=$temp;
$i++;
}
}
unset($i);
unset($temp);
return$this->record;
} /
seek,butnotequaltoMysqL_data_seek.thismethordwillreturnalist.
@paramint$pos
@paramstring$style
@returnrecord
/
functionseek($pos=0,$style="array")
{
if(!@MysqL_data_seek($this->query_id,$pos))
die("Errorin".FUNCTION."():cannotseektorow".$pos."!");
$result=@($style=="array")?MysqL_fetch_array($this->query_id):MysqL_fetch_object($this->query_id);
if(!$result)die("Errorin".FUNCTION."():cannotfetchdata!");
return$result;
}
/*
freetheresultofquery
/
functionfree()
{
if(($this->query_id)&($this->query_id!=0))@MysqL_free_result($this->query_id);
} /*
evaluatetheresult(size,width)
@returnnum
*/
functionaffected_rows()
{
return@MysqL_affected_rows($this->link_id);
} functionnum_rows()
{
return@MysqL_num_rows($this->query_id);
} functionnum_fields()
{
return@MysqL_num_fields($this->query_id);
} functioninsert_id()
{
return@MysqL_insert_id($this->link_id);
} functionclose()
{
$this->free();
if($this->link_id!=0)@MysqL_close($this->link_id);
if(MysqL_errno()!=0)die("MysqLError:".MysqL_errno().":".MysqL_error());
} functionselect($strsql,$number,$offset)
{
if(empty($number)){
return$this->Execute($strsql);
}else{
return$this->Execute($strsql.'limit'.$offset.','.$number);
}
} functiondestruct()
{
$this->close();
$this->set("user","");
$this->set("host","");
$this->set("password","");
$this->set("database","");
}
}
?> 在此基础上,我顺便封装SIDU(select,insert,update,delete)四种基本操作,作为简化的zendFramework的module。代码如下(这个没写注释了,懒的写。。):
<?
classmodule{ var$MysqL; var$tbname; var$debug=false; function__construct($tbname){
if(!is_string($tbname))die('Moduleneedaargsoftablename');
$this->tbname=$tbname;
$this->MysqL=PHPbean::registry('db');
} function_setDebug($debug=true){
$this->debug=$debug;
} functionadd($row){
if(!is_array($row))die('moduleerror:rowshouldbeanarray');
$strsql='insertinto'.$this->tbname.'
';
$keys='';
$values='';
foreach($rowas$key=>$value){
$keys.=''.$key.'
,';
$values.='\''.$value.'\'';
}
$keys=rtrim($keys,',');
$values=rtrim($values,');
$strsql.='('.$keys.')values('.$values.')';
if($this->debug)echo'
'.$strsql.'
';
$this->MysqL->query($strsql);
return$this->MysqL->insert_id();
} functionquery($strsql){
return$this->MysqL->Execute($strsql);
} functioncount($where=''){
$strsql='selectcount()asnumfrom
'.$this->tbname.'
'; if(!empty($where))$strsql.=$where;
$rs=$this->MysqL->Execute($strsql);
return$rs[0]['num'];
} functionselect($where=''){
$strsql='selectfrom
'.$this->tbname.'
'; if(!empty($where))$strsql.=$where;
return$this->MysqL->Execute($strsql);
} functiondelete($where=''){
if(empty($where))die('Error:thedeletemethodneedacondition!');
return$this->MysqL->query('deletefrom
'.$this->tbname.'
'.$where); } functionupdate($set,$where){
if(empty($where))die('Error:theupdatemethodneedacondition!');
if(!is_array($set))die('Error:Setmustbeanarray!');
$strsql='update
'.$this->tbname.'
'; //getastringofset
$strsql.='set';
foreach($setas$key=>$value){
$strsql.='
'.$key.'
=\''.$value.'\','; }
$strsql=rtrim($strsql,');
return$this->MysqL->query($strsql.''.$where);
} functiondetail($where){
if(empty($where))die('Error:whereshouldnotempty!');
$rs=$this->MysqL->query('select*from
'.$this->tbname.'
'.$where); return$this->MysqL->seek(0);
}
}
?> 原文链接:https://www.f2er.com/php/29791.html