灵魂腐蚀 发表于 2015-2-16 00:27:07

PHP网页设计Db_mssql_class

会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!   具体引见:
   因为任务的缘由,需求对SQL SERVER数据库停止操作,依据之前利用的MySQL数据库操作类改写成如今这个对SQL SERVER停止操作的PHP类,可以履行毗连数据库,履行SQL语句,查询数据,取得最初一次拔出操作的ID号等功效!
<?php
/****************************************************************************
            db_mssql_class.php-description
                           -------------------
    begin                : 2002 4 2
    $Id: db_mssql_class.php,v 1.1 2002/04/03 09:25:33 Simon.Qiu Exp $
/****************************************************************************/
class DB_Handle{
var $ClassName = "DB_Handle";

var $Server;
var $UserName;
var $Password;
var $Database;

var $LinkID=0;
var $QueryResult="";
var $LastInsertID = "";

/* private ignore=>ignore the error and continue, halt=>report the error and halt, report=>report the error and continue */
var $Halt_On_Error = "report";

var $Error = "";
var $ErrNo = 0;

/**public
*remark: This is the db_mysql_class's structure
*function: Set the server,username,password,database variable.
*/
function DB_Handle($server="",$username="",$password="",$database=""){
$this->Server = $server;
$this->UserName = $username;
$this->Password = $password;
$this->Database = $database;
}

   
/**public
*function: Connect database and select database
*success: retun 1
*failed: return 0
*/
function connect(){
$this->LinkID = @mssql_pconnect($this->Server,$this->UserName,$this->Password);
if(!$this->LinkID){
   $this->halt("mssql_pconnect($this->Server,$this->UserName,$this->Password): Failed");
   return 0;
}
if(!@mssql_select_db($this->Database)){
   $this->halt("mssql_select_db($this->Database) Failed.");
   return 0;
}
return 1;
}


/**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;
}
/**public
*function: Execute SQL instruction
*success: return SQL Result.
*failed: return 0;
*/
function execQuery($sql=""){
if($this->LinkID == 0){
   $this->halt("Execute SQL Failed: Hava not valid database connect.");
   return 0;
}

ob_start();
$this->QueryResult = mssql_query($sql,$this->LinkID);
$error = ob_get_contents();
ob_end_clean();
if($error){
   
   $this->halt("Execute SQL: mssql_query($sql,$this->LinkID) failed.");
   return 0;
}
$reg = "#insert into#";
if(preg_match($reg,$sql)){
   $sql = "select @@IDENTITY as id";
   $res = mssql_query($sql,$this->LinkID);
   $this->LastInsertID = mssql_result($res,0,id);
}
return $this->QueryResult;
}


/**public
*function: Get the query result's row number
*success: return the row fo the Result
*failed: return 0
*/
function getTotalRowNum($result=""){
if($result != "") $this->QueryResult = $result;
$row = @mssql_num_rows($this->QueryResult);
if($row >= 0) return $row;
$this->halt("Get a row of result Failed: Result $result is invalid.");
return 0;
}


/**public
*function: Get the last insert record's id
*success: return id
*failed: return 0
*/
function lastInsertID(){
return $this->LastInsertID;
}


/**public
*function: Get a field's value
*success: return value of the field
*failed: return 0
*/
function getField($result="",$row=0,$field=0){
if($result != "") $this->QueryResult = $result;
$fieldvalue = @mssql_result($this->QueryResult,$row,$field);
if($fieldvalue != "") return $fieldvalue;
$this->halt("Get field: mssql_result($this->QueryResult,$row,$field) failed.");
return 0;

//Here should have error handle
}


/**public
*function: Get next record
*success: return a array of the record's value
*failed: return 0
*/
function nextRecord($result=""){
if($result != "") $this->QueryResult = $result;
$record = @mssql_fetch_array($this->QueryResult);
if(is_array($record)) return $record;
//$this->halt("Get the next record Failed: the Result $result is invalid.");
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);
}


/**public
*function: Set the Halt_On_Error's state
*success: return 1
*failed: return 0
*/
function setHaltOnError($state="ignore"){
if(!($state == "ignore" || $state == "report" || $state == "halt")){
   $this->halt("Set the Halt_On_Error Fail: There is no state value $state");
   return 0;      
}
$this->Halt_On_Error = $state;
return 1;
}


/**public
*function: Get the Halt_On_Error's state
*/
function getHaltOnError(){
return $this->Halt_On_Error;
}


/**public
*function: Get the class's name
*/
function toString(){
return $this->ClassName;
}


/**private
*function: Error handle
*/
function halt($msg){
$this->Error = @mysql_error($this->LinkID);
$this->ErrNo = @mysql_errno($this->LinkID);
if ($this->Halt_On_Error == "ignore") return;
$this->makeMsg($msg);
if ($this->Halt_On_Error == "halt") die("<b>Session halted</b>");
}


/**private
*function: Make error information and print
*/
function makeMsg($msg){
printf("<b>Database error:</b> %s<br>\n", $msg);
printf("<b>MySQL Error</b>: %s (%s)<br>\n",$this->ErrNo,$this->Error);
}
}
?>

PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。

若天明 发表于 2015-2-16 02:58:39

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

灵魂腐蚀 发表于 2015-2-27 21:11:13

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

蒙在股里 发表于 2015-3-6 13:54:43

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

飘灵儿 发表于 2015-3-13 01:09:42

做为1门年轻的语言,php一直很努力。

兰色精灵 发表于 2015-3-19 05:54:14

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

admin 发表于 2015-3-23 21:15:25

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

因胸联盟 发表于 2015-4-4 03:43:44

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

山那边是海 发表于 2015-4-7 02:03:44

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

再现理想 发表于 2015-4-18 03:56:19

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

精灵巫婆 发表于 2015-4-27 05:52:34

本文当是我的笔记啦,遇到的问题随时填充

活着的死人 发表于 2015-4-27 21:23:45

当然这种网站的会员费就几十块钱。

简单生活 发表于 2015-6-8 09:58:50

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

老尸 发表于 2015-6-30 23:23:51

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

仓酷云 发表于 2015-7-21 21:40:44

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

只想知道 发表于 2015-7-22 08:01:55

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

变相怪杰 发表于 2015-7-26 01:29:10

当然这种网站的会员费就几十块钱。

深爱那片海 发表于 2015-10-1 23:54:37

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

乐观 发表于 2015-10-2 20:57:40

爱上php,他也会爱上你。
页: [1]
查看完整版本: PHP网页设计Db_mssql_class