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程序设计有所帮助。