当前位置: 代码迷 >> SQL >> php联接mssql的一些方法总结
  详细解决方案

php联接mssql的一些方法总结

热度:50   发布时间:2016-05-05 14:36:25.0
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

  1. <?php?? ?
  2. ?? ?
  3. class???SQL{?? ?
  4. ? ?
  5. var???$server;?? ?
  6. var???$userName;?? ?
  7. var???$passWord;?? ?
  8. var???$dataBase;?? ?
  9. ? ?
  10. var???$linkID???=???0;?? ?
  11. var???$queryResult;?? ?
  12. var???$lastInsertID;?? ?
  13. ? ?
  14. var???$pageNum???=???0;//分页用---共有几条数据?? ?
  15. var???$ER;?? ?
  16. ? ?
  17. ?? ?
  18. function?????SQL($Server='',$UserName='',$PassWord='',$DataBase=''){?? ?
  19. $this->server???=???$Server;?? ?
  20. $this->userName???=???$UserName;?? ?
  21. $this->passWord???=???$PassWord;?? ?
  22. $this->dataBase???=???$DataBase;?? ?
  23. }?? ?
  24. ?? ?
  25. function???db_connect(){?? ?
  26. $this->linkID???=???mssql_pconnect($this->server,$this->userName,$this->passWord);?? ?
  27. if(!$this->linkID){?? ?
  28. $this->ER???=???"db_connect($this->server,$this->userName,$this->passWord)???error";?? ?
  29. return???0;?? ?
  30. }?? ?
  31. if???(!mssql_select_db($this->dataBase,$this->linkID))???{?? ?
  32. $this->ER???=???"mssql_select_db($this->dataBase,$this->lastInsertID)???error";?? ?
  33. return???0;?? ?
  34. }?? ?
  35. return???$this->linkID;?? ?
  36. }?? ?
  37. ? ?
  38. ?? ?
  39. function???selectDatabase(){?? ?
  40. if(mssql_select_db($this->dataBase))?? ?
  41. return???1;?? ?
  42. else?? ?
  43. return???0;?? ?
  44. }?? ?
  45. ? ?
  46. ?? ?
  47. function?????query($Str){?? ?
  48. if???($this->linkID???==???0)???{?? ?
  49. $this->ER???=???"数据库还没有连接!!";?? ?
  50. }?? ?
  51. ? ?
  52. ??????????????$this->queryResult???=???mssql_query($Str);?????? ?
  53. //$this->queryResult???=???mssql_query($Str,$this->linkID);?? ?
  54. if???(!$this->queryResult)???{?? ?
  55. ????? ?
  56. ? ?
  57. $this->ER???=???"$Str.没有操作成功,query???error!!";?? ?
  58. return???0;/?? ?
  59. function???fetch_array($result){?? ?
  60. if($result???!=???"")???$this->queryResult???=???$result;?? ?
  61. $rec???=mssql_fetch_array($this->queryResult);?? ?
  62. ? ?
  63. if(is_array($rec)){?? ?
  64. return???$rec;?? ?
  65. ? ?
  66. }?? ?
  67. ? ?
  68. //$this->ER???=???"没有获取数据!";?? ?
  69. return???0;?? ?
  70. }?? ?
  71. ? ?
  72. ?? ?
  73. function???freeResult($result=""){?? ?
  74. if($result???!=???"")???$this->queryResult???=???$result;?? ?
  75. return???mssql_free_result($this->queryResult);?? ?
  76. }?? ?
  77. ??????? ?
  78. ?? ?
  79. function???num_rows($result=""){?? ?
  80. if???($result???!=???"")???{?? ?
  81. $this->queryResult???=???$result;?? ?
  82. $row???=???mssql_num_rows($this->queryResult);?? ?
  83. return???$row;?? ?
  84. }?? ?
  85. }?? ?
  86. ????????? ?
  87. ?? ?
  88. function???result_ar($str=''){?? ?
  89. if???(emptyempty($str))???{?? ?
  90. return???0;?? ?
  91. }?? ?
  92. $back???=???array();?? ?
  93. $this->queryResult???=???$this->query($str);?? ?
  94. ? ?
  95. while???($row???=???$this->fetch_array($this->queryResult))???{?? ?
  96. $back[]???=???$row;?? ?
  97. }?? ?
  98. return???$back;?? ?
  99. }?? ?
  100. ? ?
  101. ?? ?
  102. function???page($Str,$Page=0,$ShowNum=5){?? ?
  103. $back???=???array();//返回数据?? ?
  104. $maxNum???=???0;?? ?
  105. if???($Str???==???"")???{?? ?
  106. $this->ER???=???"没有数据";?? ?
  107. return?????0;?? ?
  108. }?? ?
  109. $this->queryResult???=???$this->query($Str);?? ?
  110. if($this->queryResult){?? ?
  111. if($Page==""){?? ?
  112. $nopa=0;?? ?
  113. }else{?? ?
  114. $nopa???=???($Page-1)*$ShowNum;?? ?
  115. if???($nopa<0)???{?? ?
  116. $nopa???=???0;?? ?
  117. }?? ?
  118. }?? ?
  119. $maxNum=$this->num_rows($this->queryResult);?? ?
  120. $k=0;?? ?
  121. $i=0;?? ?
  122. $dd=$this->fetch_array($this->queryResult);?? ?
  123. ? ?
  124. while($dd&&$nopa<=$maxNum&&$i<$ShowNum){?? ?
  125. if($nopa???>=???$maxNum)?????$nopa???=???$maxNum;?? ?
  126. mssql_data_seek($this->queryResult,$nopa);?? ?
  127. ? ?
  128. $row=$this->fetch_array($this->queryResult);?? ?
  129. ? ?
  130. $nopa++;?? ?
  131. $i++;?? ?
  132. $back[]???=???$row;?? ?
  133. ? ?
  134. if???($nopa???>=$maxNum)???{?? ?
  135. break;?? ?
  136. }?? ?
  137. }?? ?
  138. }?? ?
  139. $this->pageNum???=???$maxNum;?? ?
  140. return???$back;?? ?
  141. }?? ?
  142. ? ?
  143. ?? ?
  144. function?????page_html($DataNum=0,$Page=1,$ShowNum=3,$web,$Post=''){?? ?
  145. if???($DataNum???==???0)???{?? ?
  146. $back???=?????"没有要查询的数据";?? ?
  147. }else???{?? ?
  148. if???($ShowNum<=0)???{?? ?
  149. $ShowNum???=???3;?? ?
  150. }?? ?
  151. if???($Page<=0)???{?? ?
  152. $Page???=???1;?? ?
  153. }?? ?
  154. if???(emptyempty($web))???{?? ?
  155. $web???=???"#";?? ?
  156. }?? ?
  157. $pageNum???=???ceil($DataNum/$ShowNum);?? ?
  158. if???($Page???<=???1)???{?? ?
  159. $top???=?????"首页<<";?? ?
  160. }else???{?? ?
  161. $top???=???"<a???href='".$web."?page=0&".$Post."'???target='_self'>首页<<???</a>";?? ?
  162. }?? ?
  163. if???($Page???!==1)???{?? ?
  164. $upPage???=?????"<a???href='".$web."?page=".($Page-1)."&".$Post."'???target='_self'>上一页</a>";?? ?
  165. }else???{?? ?
  166. $upPage???=???"上一页";?? ?
  167. }?? ?
  168. if???($Page???<???$pageNum)???{?? ?
  169. $downPage???=???"<a???href='".$web."?page=".($Page+1)."&".$Post."'???target='_self'>下一页</a>";?? ?
  170. }else???{?? ?
  171. $downPage???=???"下一页";?? ?
  172. }?? ?
  173. if???($Page???==???$pageNum)???{?? ?
  174. $foot???=???">>尾页";?? ?
  175. }else???{?? ?
  176. $foot???=???"<a???href='".$web."?page=".$pageNum."&".$Post."'???target='_self'>???>>尾页</a>";?? ?
  177. }?? ?
  178. ? ?
  179. $back???=???<<<EOT?? ?
  180. ? ?
  181. 共???$pageNum???页???&nbsp;&nbsp;?? ?
  182. 第???$Page/$pageNum???页???$top???&nbsp;???$upPage???&nbsp;???$downPage?????&nbsp;???$foot?? ?
  183. EOT;?? ?
  184. }?? ?
  185. return???$back;?? ?
  186. }?? ?
  187. }//end???class?? ?
  188. ?>?


  相关解决方案