手机
当前位置:查字典教程网 >编程开发 >php教程 >支持php4、php5的mysql数据库操作类
支持php4、php5的mysql数据库操作类
摘要:前端一直使用PHP5,的确使用起来特别的爽,现在为了能在俺的虚拟主机上跑,不得不改成PHP4的。这几个库类我以前发在PHPCHIAN,地址是...

前端一直使用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","root");

$rs=$mysql->query("select*fromtest");

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","root","root");

$rs=$mysql->execute("select*fromtest");

print_r($rs);

$mysql->close();

*/////////////insertaction////////////////////////////

$mysql=newDB_Mysql("localhost","root","root","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

*/

function__construct($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->user,$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);

}

}

function__destruct()

{

$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'<hr>'.$strsql.'<hr>';

$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='select*from`'.$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);

}

}

?>

【支持php4、php5的mysql数据库操作类】相关文章:

php数据库备份脚本

用PHP连接Oracle数据库

聊天室php&mysql(四)

php中数据的批量导入(csv文件)

PHP调用三种数据库的方法(3)

php操作MongoDB类实例

PHP调用三种数据库的方法(1)

聊天室php&mysql(一)

php备份数据库类分享

php快速查找数据库中恶意代码的方法

精品推荐
分类导航