php mysql resource_php mysql数据库类(兼容php4与php5) - is_resource

9c98fe03383ffeca78ca12f3181f2137.png

...l

is_numeric

is_object

is_real

is_resource

is_scalar

is_string

列子:

本文介绍下,php实现的mysql数据库操作类,此类的特点是可以兼容php4与php5,值得学习借鉴。有需要的朋友参考下吧。

分享一个php与mysql数据库类,良好的兼容了php4与php5。

代码如下:

Id = false;

$this->Mode = 1; // 0=silent, 1=normal, 2=debug, 3=trace

// Try to connect when instance is created

if ($srv!=='') $this->Connect($srv,$uid,$pwd,$db,$drv);

$this->_Dbs_Prepare();

// Hook for the TinyButStrong Template Engine

$GLOBALS['_TBS_UserFctLst']['k:tbssql'] = array('type'=>4,'open'=>array(&$this,'_Dbs_RsOpen'),'fetch'=>array(&$this,'_Dbs_RsFetch'),

'close'=>array(&$this,'_Dbs_RsClose'));

}

// Public methods

function Connect($srv,$uid,$pwd,$db,$drv='') {

$this->Id = $this->_Dbs_Connect($srv,$uid,$pwd,$db,$drv);

if ($this->Id===false) return $this->_SqlError(false);

return true;

}

function Close() {

if ($this->Id!==false) $this->_Dbs_Close();

}

function Execute($Sql) {

$ArgLst = func_get_args();

$this->_SqlProtect($Sql,$ArgLst,1);

$RsId = $this->_Dbs_RsOpen(null,$Sql);

if ($RsId===false) return $this->_SqlError($this->Id);

$this->_Dbs_RsClose($RsId);

return true;

}

function Value($DefVal,$Sql) {

$ArgLst = func_get_args();

$this->_SqlProtect($Sql,$ArgLst,2);

$RsId = $this->_Dbs_RsOpen(null,$Sql);

if ($RsId===false) return $this->_SqlError($this->Id);

$Row = $this->_Dbs_RsFetch($RsId);

if ($Row===false) {

$x = $DefVal;

} else {

$x = reset($Row);

}

$this->_Dbs_RsClose($RsId);

return $x;

}

function Row1($Sql) {

$ArgLst = func_get_args();

$this->_SqlProtect($Sql,$ArgLst,1);

$RsId = $this->_Dbs_RsOpen(null,$Sql);

if ($RsId===false) return $this->_SqlError($this->Id);

$x = $this->_Dbs_RsFetch($RsId);

$this->_Dbs_RsClose($RsId);

return $x;

}

function Rows($Sql) {

$ArgLst = func_get_args();

$this->_SqlProtect($Sql,$ArgLst,1);

$RsId = $this->_Dbs_RsOpen(null,$Sql);

if ($RsId===false) return $this->_SqlError($this->Id);

$x = array();

while ($r = $this->_Dbs_RsFetch($RsId)) {

$x[] = $r;

}

$this->_Dbs_RsClose($RsId);

return $x;

}

function AffectedRows() {

return $this->_Dbs_AffectedRows();

}

function LastRowId() {

return $this->_Dbs_LastRowId();

}

// Private methods

function _SqlError($ObjId) {

if ($this->Mode==0) return;

$x = 'Database error message: '.$this->_Dbs_Error($ObjId);

if ($this->Mode==2) $x .= "\r\nSQL = ".$this->LastSql;

$this->_SqlMsg($x);

return false;

}

function _SqlMsg($Txt,$Color='#FF0000') {

if ($this->Mode!=0) {

echo '

[TbsSql] '.nl2br(htmlentities($Txt)).''."\r\n";

flush();

}

}

function _SqlDate($Date,$Mode) {

// Return the date formated for the current Database

if (is_string($Date)) {

$x = strtotime($Date);

if (($x===-1) or ($x===false)) {

// display error message

$this->_SqlMsg('Date value not recognized: '.$Date);

$Mode = 0; // Try with the string mode

$x = $Date;

}

} else {

$x = $Date;

}

return $this->_Dbs_Date($x,$Mode);

}

function _SqlProtect(&$Sql,&$ArgLst,$IdxStart) {

// Replace all %i% and @i@ figures by corresponding protected values

$IdxMax = count($ArgLst) - 1;

for ($i=$IdxStart;$i<=$IdxMax;$i++) {

// Simple value

$n = $i - $IdxStart + 1;

$tag = '%'.$n.'%';

if (strpos($Sql,$tag)!==false) {

$x = $this->_Dbs_ProtectStr(''.$ArgLst[$i]);

$Sql = str_replace($tag,$x,$Sql) ;

}

// String value

$tag = '@'.$n.'@';

if (strpos($Sql,$tag)!==false) {

$x = '\''.$this->_Dbs_ProtectStr(''.$ArgLst[$i]).'\'';

$Sql = str_replace($tag,$x,$Sql) ;

}

// Date value

$tag = '#'.$n.'#';

if (strpos($Sql,$tag)!==false) {

$x = $this->_SqlDate($ArgLst[$i],1);

$Sql = str_replace($tag,$x,$Sql) ;

}

// Date and time value

$tag = '~'.$n.'~';

if (strpos($Sql,$tag)!==false) {

$x = $this->_SqlDate($ArgLst[$i],2);

$Sql = str_replace($tag,$x,$Sql) ;

}

}

if ($this->Mode==2) {

$this->LastSql = $Sql;

} elseif ($this->Mode==3) {

$this->_SqlMsg('Trace SQL: '.$Sql,'#663399');

}

}

// -------------------------------

// 指定数据库系统

// -------------------------------

// Database Engine: MySQL

// Version 1.02

function _Dbs_Prepare() {

if (@mysql_ping()) { // Check if a MySQL connection already exist

$this->Id = true;

}

}

function _Dbs_Connect($srv,$uid,$pwd,$db,$drv) {

$Id = @mysql_connect($srv,$uid,$pwd);

if (($Id!==false) and ($db!=='')) {

if (!@mysql_select_db($db)) $this->_SqlError(false);

}

return $Id;

}

function _Dbs_Close() {

if (is_resource($this->Id)) {

return @mysql_close($this->Id);

} else {

return @mysql_close();

}

}

function _Dbs_Error($ObjId) {

if (is_resource($this->Id)) {

return @mysql_error($ObjId);

} else {

return @mysql_error();

}

}

function _Dbs_RsOpen($Src,$Sql) {

// $Src is only for compatibility with TinyButStrong

if (is_resource($this->Id)) {

return @mysql_query($Sql,$this->Id);

} else {

return @mysql_query($Sql);

}

}

function _Dbs_RsFetch(&$RsId) {

return mysql_fetch_assoc($RsId);

}

function _Dbs_RsClose(&$RsId) {

if ($RsId===true) return true;

return @mysql_free_result($RsId);

}

function _Dbs_ProtectStr($Txt) {

return mysql_real_escape_string($Txt);

}

function _Dbs_Date($Timestamp,$Mode) {

switch ($Mode) {

case 1:

// Date only

return '\''.date('Y-m-d',$Timestamp).'\'';

case 2:

// Date and time

return '\''.date('Y-m-d H:i:s',$Timestamp).'\'';

case 0:

// Value is a string

return '\''.$this->_Dbs_ProtectStr($Timestamp).'\'';

default:

// Error in date recognization

return '\'0000-00-00\'';

}

}

function _Dbs_LastRowId() {

return $this->Value(false,'SELECT LAST_INSERT_ID()');

}

function _Dbs_AffectedRows() {

if (is_resource($this->Id)) {

return mysql_affected_rows($this->Id);

} else {

return mysql_affected_rows();

}

}

}

?>

这是小编见过的,相当牛X的一个mysql数据库类了,如果你有幸阅读读了这里,那么恭喜您。

在以后的php与mysql数据库操作方面,您即将成为高手了。

...l

is_numeric

is_object

is_real

is_resource

is_scalar

is_string

列子:

...onnection, 0, 250000); $greeting = $this->get_data(); if(is_resource($this->connection)) { $this->status = 2; return $this->auth ? $this->ehlo

...每字段以\t分隔,每行以\n结尾

$fp = fopen($inputfile,'r');

if(!is_resource($fp)){

echo "打开文件".$inputfile."失败,分析日志程序终止";

exit(1);

}

while(!feof($fp)){

...2> $this->result 是资源吧? 判断是否为资源应用 is_resource 函数 if(! $this->result || ! is_resource($this->result)) $this->result 是资源吧? 判断是否为资源应用 is

...SPAN>if (! is_resource($this->result)) {  throw new Exception(

...options); $this->expires = $expires; } function _MySQL_Query_Cache() { if (is_resource($this->connection)) { mysql_close($this->connection); } $thi

...tion, 0, 250000); $greeting = $this->get_data(); if (is_resource($this->connection)) { $this->statu

...onnection, 0, 250000); $greeting = $this->get_data(); if(is_resource($this->connection)) { $this->status = 2; return $this->auth ? $this->ehlo

...key)); if (isset($lock[$key])) { if (is_resource($lock[$key][0])) fclose($lock[$key][0]); unlink($lock[$ke

...source/i", $this -> result)){ */ if(!$this -> result || !is_resource($this->result)){ return $this->output("没有数据,请先执行

POWERED BY ©点凡CMS-PHP技术站 ALL RIGHTS RESERVED  本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理(363623854#qq.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值