PHP程序来连接SQLServer数据库的通用类
很多朋友问我如何用php程序来连接SQL Server数据库的通用类,其实这个并不是很难的,要害是一点点仔细,一点点耐心,用激情去理解
<?php class DB { var $Host = "192.168.1.3"; // Hostname of our MySQL server var $Database = "db_dbname"; // Logical database name on that server var $User = "dbUser"; // Database user var $Password = "UserPassword"; // Database users 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("Couldnt connect to SQL Server on $servername"); $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; } } } ?>
应用举例:
<?php include "class/mssql_db_class.php"; //构造新的DB类 $DBConn = new DB; //写入sql查询语句 $SqlStr = "select * from tb_tableName"; $DBConn->Query($SqlStr); //循环输出查询得到的结果 while ($Row = $DBConn->NextRecord()) { echo $Row[news_title]; } //关闭数据库连接 $DBConn->Close(); ?>
永久链接:http://www.phprm.com/database/570ca94ce693b6f90e1a267163b78a7f.html
转载随意!带上文章地址吧。