php程序来连接SQL Server数据库的通用类
来源:互联网 发布:新浪财经软件下载 编辑:程序博客网 时间:2024/06/05 20:46
很多朋友问我如何用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();
?>
<?
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程序来连接SQL Server数据库的通用类
- php程序来连接SQL Server数据库的通用类
- php连接数据库通用类
- php通用连接数据库类
- 一个通用的数据库访问类(sql server数据库)
- 一个通用的数据库访问类(sql server数据库)
- java语言连接sql server数据库(其他数据库通用)的两种方法
- php连接SQL Server数据库及相关的配置
- 微软的PHP连接SQL Server数据库 (Microsoft Drivers for PHP for SQL Server )
- 微软的PHP连接SQL Server数据库 (Microsoft Drivers for PHP for SQL Server )
- SQL Server总结(1):程序和数据库的连接
- Java程序通过JDBC连接远程的数据库SQL Server
- C#操作MS SQL Server 数据库的通用类
- php连接sql server数据库实例
- php支持连接sql server数据库
- php连接sql server数据库库
- PHP+SQL Server 连接数据库(一)
- PHP+SQL Server 连接数据库(二)
- 配置Tomcat的数据库连接池
- C#2.0 新特性探究之委托与匿名委托
- C#2.0新特性探究之模拟泛型和内置算法
- struts 下面的页面分页显示的实现(之一)
- struts 实现分页(之二)
- php程序来连接SQL Server数据库的通用类
- [收集整理]BT恶心诗全集
- 装箱与拆箱学习笔记
- ASP操作Excel技术总结
- linux+php+gd
- DirectShow使用大全
- 高三:一次经历;今后的路?
- 马云对雅虎员工的第一次讲话-爱迪生欺骗了全世界!
- 爱上命令行