php连接mssql的一些方法总结
為了能讓PHP連接MSSQL,系統需要安裝MSSQL,PHP,且在PHP.ini中的配置中,將
?????? ;extension=php_mssql.dll前面的;去掉
?????? 1.連接MSSQL
?????? $conn=mssql_connect("實例名或者服務器IP","用戶名","密碼");
?????? //測試連接
?????? if($conn)
?????? {
?????? echo "連接成功";
?????? }
?????? 2.選擇要連接的數據庫
?????? mssql_select_db("dbname");
?????? 3.執行查詢
?????? $rs = mssql_query("select top 1 id,username from tbname",$conn);
?????? 或者直接執行update,insert等語句,可以不用為返回結果賦值
?????? mssql_query("update tbname set username='niunv' where id=1");
?????? 4.獲取記錄集行數
?????? echo mssql_num_rows($rs);
?????? 5.獲取記錄集
?????? if($row=mssql_fetch_array($rs))
?????? {
?????? $id = $row[0];//獲取ID字段值
?????? $username = $row[1];//獲取username字段值
?????? }
?????? 6.獲取新增記錄的ID
?????? 將id字段設置為IDENTITY字段,執行insert語句以后,就會產生一個 @@IDENTITY 全局變量值,查詢出來就是最后一條新增記錄的ID了.
?????? mssql_query("insert into tbname(username) values ('nv')",$conn);?
?????? $rs = mssql_query("select @@IDENTITY as id",$conn);
?????? if($row=mssql_fetch_array($rs))
?????? {
?????? echo $row[0];
?????? }
?????? 7.釋放記錄集
?????? mssql_free_result($rs);
?????? 8.關閉連接
?????? mssql_close($conn);?
???????
?????? 注:用PHP操作MSSQL比在ASP連接MYSQL要簡單,所以,當需要MSSQL與MYSQL并存時,用PHP連接MSSQL來操作MYSQL與MSSQL并存比較簡單好用.如果是ASP連接MYSQL,需要安裝一個MYSQL驅動,默認windows的ODBC沒有安裝,很遺憾...?
???????
???????
???????
? 1.在web服務器上至少安裝了mssql的客戶端?????
? 2.打開php.ini把;extension=php_mssql.dll?? 前面的分號去掉???
??????? 有必要話:需要制定extension_dir???
? 3.推薦使用?? php<=4.0.9???? <=5.0.3目前?? 我還沒有連接成功過4.010和?? 5.0.3???
? 4.數據庫的?? 連接分頁可以?? 到???? phpe.net上獲取到相應的class???
? 下面是我根據那里?? 修改的?? 一個class???
? <?php???
? /**???
? *mssql?? 數據庫連接類???
? **/???
? class?? SQL{???
????
? var?? $server;???
? var?? $userName;???
? var?? $passWord;???
? var?? $dataBase;???
????
? var?? $linkID?? =?? 0;???
? var?? $queryResult;???
? var?? $lastInsertID;???
????
? var?? $pageNum?? =?? 0;//分頁用---共有幾條數據???
? var?? $ER;???
????
? /**???
? *構造函數???
? **/???
? function???? SQL($Server='',$UserName='',$PassWord='',$DataBase=''){???
? $this->server?? =?? $Server;???
? $this->userName?? =?? $UserName;???
? $this->passWord?? =?? $PassWord;???
? $this->dataBase?? =?? $DataBase;???
? }???
? /**???
? *數據庫連接???
? **/???
? function?? db_connect(){???
? $this->linkID?? =?? mssql_pconnect($this->server,$this->userName,$this->passWord);???
? if(!$this->linkID){???
? $this->ER?? =?? "db_connect($this->server,$this->userName,$this->passWord)?? error";???
? return?? 0;???
? }???
? if?? (!mssql_select_db($this->dataBase,$this->linkID))?? {???
? $this->ER?? =?? "mssql_select_db($this->dataBase,$this->lastInsertID)?? error";???
? return?? 0;???
? }???
? return?? $this->linkID;???
? }???
????
? /**public???
? *???? function:?? Check?? the?? database,?? if?? exist?? then?? select???
? *???? exist:?? return?? 1???
? *???? not?? exist:?? return?? 0???
? */???
? function?? selectDatabase(){???
? if(mssql_select_db($this->dataBase))???
? return?? 1;???
? else???
? return?? 0;???
? }???
????
? /**???
? *數據操作???
? **/???
? function???? query($Str){???
? if?? ($this->linkID?? ==?? 0)?? {???
? $this->ER?? =?? "數據庫還沒有連接!!";???
? }???
????
??????????????? $this->queryResult?? =?? mssql_query($Str);???????
? //$this->queryResult?? =?? mssql_query($Str,$this->linkID);???
? if?? (!$this->queryResult)?? {???
????????
????
? $this->ER?? =?? "$Str.沒有操作成功,query?? error!!";???
? return?? 0;//****************對于php?? 4.3.9以上版本的錯誤用1???
? }???
? return?? $this->queryResult;???
? }???
????
? /**???
? *數據獲取???
? **/???
? function?? fetch_array($result){???
? if($result?? !=?? "")?? $this->queryResult?? =?? $result;???
? $rec?? =mssql_fetch_array($this->queryResult);???
????
? if(is_array($rec)){???
? return?? $rec;???
????
? }???
????
? //$this->ER?? =?? "沒有獲取數據!";???
? return?? 0;???
? }???
????
? /**public???
? *???? function:?? Free?? the?? Query?? Result???
? *???? success?? return?? 1???
? *???? failed:?? return?? 0???
? */???
? function?? freeResult($result=""){???
? if($result?? !=?? "")?? $this->queryResult?? =?? $result;???
? return?? mssql_free_result($this->queryResult);???
? }???
??????????
? /**???
? *獲取影響的的行數???
? *獲取操作過的行數???
? **/???
? function?? num_rows($result=""){???
? if?? ($result?? !=?? "")?? {???
? $this->queryResult?? =?? $result;???
? $row?? =?? mssql_num_rows($this->queryResult);???
? return?? $row;???
? }???
? }???
????????????
? /**???
? *獲取查詢結果---多個???
? **/???
? function?? result_ar($str=''){???
? if?? (empty($str))?? {???
? return?? 0;???
? }???
? $back?? =?? array();???
? $this->queryResult?? =?? $this->query($str);???
????
? while?? ($row?? =?? $this->fetch_array($this->queryResult))?? {???
? $back[]?? =?? $row;???
? }???
? return?? $back;???
? }???
????
? /**???
? *數據庫信息分頁???
? *$Result?? 數據庫操作???
? *str?? ==sql語句?????
? *page?? ==第幾頁???
? *showNum?? ==顯示幾頁???
? */???
? function?? page($Str,$Page=0,$ShowNum=5){???
? $back?? =?? array();//返回數據???
? $maxNum?? =?? 0;???
? if?? ($Str?? ==?? "")?? {???
? $this->ER?? =?? "沒有數據";???
? return???? 0;???
? }???
? $this->queryResult?? =?? $this->query($Str);???
? if($this->queryResult){???
? if($Page==""){???
? $nopa=0;???
? }else{???
? $nopa?? =?? ($Page-1)*$ShowNum;???
? if?? ($nopa<0)?? {???
? $nopa?? =?? 0;???
? }???
? }???
? $maxNum=$this->num_rows($this->queryResult);???
? $k=0;???
? $i=0;???
? $dd=$this->fetch_array($this->queryResult);???
????
? while($dd&&$nopa<=$maxNum&&$i<$ShowNum){???
? if($nopa?? >=?? $maxNum)???? $nopa?? =?? $maxNum;???
? mssql_data_seek($this->queryResult,$nopa);???
????
? $row=$this->fetch_array($this->queryResult);???
????
? $nopa++;???
? $i++;???
? $back[]?? =?? $row;???
????
? if?? ($nopa?? >=$maxNum)?? {???
? break;???
? }???
? }???
? }???
? $this->pageNum?? =?? $maxNum;???
? return?? $back;???
? }???
????
? /**???
? *分頁的html頁碼???
? */???
? function???? page_html($DataNum=0,$Page=1,$ShowNum=3,$web,$Post=''){???
? if?? ($DataNum?? ==?? 0)?? {???
? $back?? =???? "沒有要查詢的數據";???
? }else?? {???
? if?? ($ShowNum<=0)?? {???
? $ShowNum?? =?? 3;???
? }???
? if?? ($Page<=0)?? {???
? $Page?? =?? 1;???
? }???
? if?? (empty($web))?? {???
? $web?? =?? "#";???
? }???
? $pageNum?? =?? ceil($DataNum/$ShowNum);???
? if?? ($Page?? <=?? 1)?? {???
? $top?? =???? "首頁<<";???
? }else?? {???
? $top?? =?? "<a?? href='".$web."?page=0&".$Post."'?? target='_self'>首頁<<?? </a>";???
? }???
? if?? ($Page?? !==1)?? {???
? $upPage?? =???? "<a?? href='".$web."?page=".($Page-1)."&".$Post."'?? target='_self'>上一頁</a>";???
? }else?? {???
? $upPage?? =?? "上一頁";???
? }???
? if?? ($Page?? <?? $pageNum)?? {???
? $downPage?? =?? "<a?? href='".$web."?page=".($Page+1)."&".$Post."'?? target='_self'>下一頁</a>";???
? }else?? {???
? $downPage?? =?? "下一頁";???
? }???
? if?? ($Page?? ==?? $pageNum)?? {???
? $foot?? =?? ">>尾頁";???
? }else?? {???
? $foot?? =?? "<a?? href='".$web."?page=".$pageNum."&".$Post."'?? target='_self'>?? >>尾頁</a>";???
? }???
????
? $back?? =?? <<<EOT???
????
? 共?? $pageNum?? 頁?? ???
? 第?? $Page/$pageNum?? 頁?? $top?? ?? $upPage?? ?? $downPage???? ?? $foot???
? EOT;???
? }???
? return?? $back;???
? }???
? }//end?? class???
? ?>
轉載于:https://www.cnblogs.com/FanTasYX/p/3173939.html
總結
以上是生活随笔為你收集整理的php连接mssql的一些方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android ListView 设置
- 下一篇: iOS:Tools:快速注释Doxyge