仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1448|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页编程之php法式来毗连SQL Server数据库的通用类...

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:57:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。     良多伴侣问我若何用php法式来毗连SQL Server数据库的通用类,其实这个并非很难的,关头是一点点细心,一点点耐烦,用热情去了解
<?
  class DB {
   var $Host = "192.168.0.199"; // Hostname of our MySQL server
   var $Database = "test"; // Logical database name on that server
   var $User = "user"; // Database user
   var $Password = "password"; // Database user's password
   
   var $Link_ID = 0; // Result of mssql_connect()
   var $Query_ID = 0; // Result of most recent mssql_query()
   var $Row = 0; // Current row number
   var $Errno = 0; // Error state of query
   var $Error = "";
   
  var $AffNum=0;
   
  /**************************************
   *打印毛病办法:显示页面处置的毛病信息。
  ****************************************/
  function Halt($msg) {
   printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
   printf("<b>mssql Error</b>: %s (%s)<br>\n",
   $this->Errno,
   $this->Error);
   die("Session halted.");
   }
   
  /**************************************
   *毗连数据库,而且选择默许的数据库
   **************************************/
  function Connect() {
   if ( 0 == $this->Link_ID ) {
  $this->Link_ID=mssql_connect($this->Host,$this->User,$this->Password) or die("Couldn't connect to SQL Server on
   
  $servername");
  Database,$this->Link_ID">$db=@mssql_select_db($this->Database,$this->Link_ID);
   if (!$this->Link_ID) {
   $this->Halt("Link-ID == false, mssql_connect failed");
   }
   }
   }
   
  /****************************************
   *封闭数据库,假如数据库毗连已翻开则封闭它
   *请在挪用Connect()并处置后利用Close()
   ****************************************/
  function Close() {
  if (0 != $this->Link_ID){
  mssql_close();
  }
  }
   
  /*************************************************
   *输出sql语句,有select,update,insert,delete
   *包含存储进程也能够经由过程这个办法来挪用。
   *************************************************/
  function Query($Query_String) {
   $this->Connect();
   
   $this->Query_ID = mssql_query($Query_String);
   $this->Row = 0;
   if (!$this->Query_ID) {
  $msg=mssql_get_last_message();
   
  if($msg==null || $msg=="")
  {
  $this->AffNum=1;
  return 1;
  }
   
  if(strtolower(substr($Query_String,0,6))!="select"){
  $this->AffNum=1;
  return 1;
  }
   
   $this->Errno = 1;
   $this->Error = "General Error (The mssql interface cannot return detailed error messages)(".$msg.").";
   $this->halt("Invalid SQL: ".$Query_String);
   }
   return $this->Query_ID;
   }
   
  /*******************************************************
   *把查询数据库的指针移到下一笔记录
   *******************************************************/
  function NextRecord() {
   $this->Record = array();
  mssql_next_result($this->Query_ID);
  $this->Record=mssql_fetch_array($this->Query_ID);
   
  $result=$this->Record;
  if(!is_array($result)) return $this->Record;
  foreach($result as $key => $value){
  $keylower=strtolower($key);
  if($keylower!=$key) $this->Record[$keylower]=$value;
  }
   
   return $this->Record;
   }
   
  /********************************************************
   *从头定位查询数据库的指针
   ********************************************************/
  function Seek($pos) {
  if($pos<=0) return;
  if(eregi("[0-9]",$pos)) mssql_data_seek($this->Query_ID,$pos);
   }
   
  /********************************************************
   *获得查询数据库失掉的总行数
   ********************************************************/
  function NumRows() {
  if($this->Query_ID) $num_rows=mssql_num_rows($this->Query_ID);
  else $num_rows=$this->AffNum;
   
   return $num_rows;
   }
   
  /*******************************************************
   *字段数
   *******************************************************/
  function NumFields() {
   return count($this->Record)/2;
   }
   
  /*******************************
   *该字段的值
   *******************************/
  function FieldValue($Field_Name){
  return $this->Record[$Field_Name];
   }
   
  /******************************
   *update,insert,delete影响的行数
   ******************************/
  function AffectedRows() {
  if($this->Query_ID) return mssql_num_rows($this->Query_ID);
  else{
  return $this->AffNum;
  }
   }
  ?>
   
   
  以下是利用示例:
   
  <?
  //机关新的DB类
  $DBConn=new DB;
   
  //写入sql查询语句
  $SqlStr="select * from test";
  $DBConn->Query($SqlStr);
   
  //轮回输入查询失掉的了局
  while($Row=$DBConn->NextRecord()){
  echo $Row[testid];
  }
   
  //封闭数据库毗连
  $DBConn->Close();
  ?>在我开始学习PHP以前,我从未想过要做软件工程,即便是在去听过华育国际的关于软件工程的美好前景后,因为我一直都没有想过要与代码打交道,而是想学好所学专业,做个网络工程师或者是网络安全人员。
山那边是海 该用户已被删除
沙发
发表于 2015-2-4 07:18:40 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
只想知道 该用户已被删除
板凳
发表于 2015-2-9 18:42:32 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-27 16:40:16 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
简单生活 该用户已被删除
5#
发表于 2015-3-6 12:57:12 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
蒙在股里 该用户已被删除
6#
发表于 2015-3-7 14:17:16 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
深爱那片海 该用户已被删除
7#
发表于 2015-3-11 16:08:49 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-15 21:37:22 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
透明 该用户已被删除
9#
发表于 2015-3-22 05:07:04 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
海妖 该用户已被删除
10#
发表于 2015-3-25 03:48:31 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
admin 该用户已被删除
11#
发表于 2015-3-31 16:31:39 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
莫相离 该用户已被删除
12#
 楼主| 发表于 2015-4-1 09:57:35 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
第二个灵魂 该用户已被删除
13#
发表于 2015-4-16 11:11:56 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
飘灵儿 该用户已被删除
14#
发表于 2015-5-3 09:42:43 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
精灵巫婆 该用户已被删除
15#
发表于 2015-5-6 00:53:07 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
老尸 该用户已被删除
16#
发表于 2015-5-6 11:10:53 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
若天明 该用户已被删除
17#
发表于 2015-5-8 05:13:47 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
小魔女 该用户已被删除
18#
发表于 2015-5-12 02:48:16 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
爱飞 该用户已被删除
19#
发表于 2015-6-19 21:12:59 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
乐观 该用户已被删除
20#
发表于 2015-7-6 00:14:31 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表