PHP封装的MSSql操作类完整实例
本文实例讲述了PHP封装的MSSql操作类。分享给大家供大家参考,具体如下:
<?php /*MSSql的操作类*/ classMSSql{ var$link; var$querynum=0; /*连接MSSql数据库,参数:dbsn->数据库服务器地址,dbun->登陆用户名,dbpw->登陆密码,dbname->数据库名字*/ functionConnect($dbsn,$dbun,$dbpw,$dbname){ if($this->link=@mssql_connect($dbsn,$dbun,$dbpw,true)){ $query=$this->Query('SETTEXTSIZE2147483647'); if(@mssql_select_db($dbname,$this->link)){ }else{ $this->halt('CannotSelectDataBase'); } }else{ $this->halt('CannotconnecttoMSSQLserver'); } } /*执行sql语句,返回对应的结果标识*/ functionQuery($sql){ if($query=@mssql_query($sql,$this->link)){ $this->querynum++; return$query; }else{ $this->querynum++; $this->halt('MSSQLQueryError',$sql); } } /*执行InsertInto语句,并返回最后的insert操作所产生的自动增长的id*/ functionInsert($table,$iarr){ $value=$this->InsertSql($iarr); $query=$this->Query('INSERTINTO'.$table.''.$value.';SELECTSCOPE_IDENTITY()AS[insertid];'); $record=$this->GetRow($query); $this->Clear($query); return$record['insertid']; } /*执行Update语句,并返回最后的update操作所影响的行数*/ functionUpdate($table,$uarr,$condition=''){ $value=$this->UpdateSql($uarr); if($condition){ $condition='WHERE'.$condition; } $query=$this->Query('UPDATE'.$table.'SET'.$value.$condition.';SELECT@@ROWCOUNTAS[rowcount];'); $record=$this->GetRow($query); $this->Clear($query); return$record['rowcount']; } /*执行Delete语句,并返回最后的Delete操作所影响的行数*/ functionDelete($table,$condition=''){ if($condition){ $condition='WHERE'.$condition; } $query=$this->Query('DELETE'.$table.$condition.';SELECT@@ROWCOUNTAS[rowcount];'); $record=$this->GetRow($query); $this->Clear($query); return$record['rowcount']; } /*将字符转为可以安全保存的mssql值,比如a'a转为a''a*/ functionEnCode($str){ returnstr_replace(''','''',str_replace('','',$str)); } /*将可以安全保存的mssql值转为正常的值,比如a''a转为a'a*/ functionDeCode($str){ returnstr_replace('''',''',$str); } /*将对应的列和值生成对应的insert语句,如:array('id'=>1,'name'=>'name')返回([id],[name])VALUES(1,'name')*/ functionInsertSql($iarr){ if(is_array($iarr)){ $fstr=''; $vstr=''; foreach($iarras$key=>$val){ $fstr.='['.$key.'],'; $vstr.='''.$val.'','; } if($fstr){ $fstr='('.substr($fstr,0,-2).')'; $vstr='('.substr($vstr,0,-2).')'; return$fstr.'VALUES'.$vstr; }else{ return''; } }else{ return''; } } /*将对应的列和值生成对应的insert语句,如:array('id'=>1,'name'=>'name')返回[id]=1,[name]='name'*/ functionUpdateSql($uarr){ if(is_array($uarr)){ $ustr=''; foreach($uarras$key=>$val){ $ustr.='['.$key.']=''.$val.'','; } if($ustr){ returnsubstr($ustr,0,-2); }else{ return''; } }else{ return''; } } /*返回对应的查询标识的结果的一行*/ functionGetRow($query,$result_type=MSSQL_ASSOC){ returnmssql_fetch_array($query,$result_type); } /*清空查询结果所占用的内存资源*/ functionClear($query){ returnmssql_free_result($query); } /*关闭数据库*/ functionClose(){ returnmssql_close($this->link); } functionhalt($message='',$sql=''){ $message.='<br/>MSSqlError:'.mssql_get_last_message(); if($sql){ $sql='<br/>sql:'.$sql; } exit("DataBaseError.<br/>Message$message$sql"); } } ?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。