多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Php訪問Mssql操作簡單封裝簡單支持存儲過程

Php訪問Mssql操作簡單封裝簡單支持存儲過程

來源:程序員人生   發布時間:2014-04-27 17:27:40 閱讀次數:2885次

  對一個Php訪問Mssql操作的一個簡單封裝簡單支持存儲過程,沒有啥太多的功能,就是簡單封裝,也沒有緩存,平時用ezSQL,但是ezSQL不支持存儲過程,所以這里封裝了存儲過程,因為自己的需要,只是做一個標記在這里而已。 

<?php
/*
* class :Mssql
* time :2009-12-10
* author :Libaochang
* version :1.0b
* description :mssql database access class,it can execute the procedur or sql
*/
class MssqlUtil
{
var $user = null; //database user name
var $keys = null; //database user password
var $host = 'localhost'; //database host name/ip and port
var $base = null; //database name
var $link = null; //create link

/**
* construct function init all parmeters
* @param <type> $host database host name/ip and port
* @param <type> $user database user name
* @param <type> $keys database user password
* @param <type> $base database name
*/
function __construct($host,$user,$keys,$base)
{
$this->host = $host;
$this->user = $user;
$this->keys = $keys;
$this->base = $base;
}

/**
* create the connection
*/
function connect()
{
$this->link = mssql_connect($this->host,$this->user,$this->keys);
if(!$this->link)
{
die('connecting failed...check the module and setting...');
}
$select = mssql_select_db($this->base,$this->link);
if(!$select)
{
die('data base is not exist...,please checke it ...');
}
}

/**
* execute the procedur width the parameter
* @param <type> $pName procedur name
* @param <type> $parName parameters it's like this $par=array('@a'=>'a')
* @param <type> $sqlTyle the procedur's parameter type, it's llike this $sqlType=array(SQLVARCHAR,SQLVARCHAR); and there is not the char single quote mark(').
* @return <type> object array
*/
function executeProcedur($pName,$parName,$sqlTyle)
{
$this->connect();

$stmt = mssql_init($pName,$this->link);
if(isset($parName))
{
$i = 0;
foreach($parName as $par=>$value)
{
mssql_bind($stmt,$par,$value,$sqlTyle[$i]);
++$i;
}
$res = mssql_execute($stmt);

$this->close();

while($row=mssql_fetch_assoc($res))
{
$r[] = $row;
}
unset($i);
mssql_free_result($res);
mssql_free_statement($stmt);
return $r;
}
}

/**
* execute procedur without the parameter
* @param <type> $pName Procedur Name
* @return <type> object array
*/
function executeProcedurNoPar($pName)
{
$this->connect();

$stmt = mssql_init($pName,$this->link);
$res = mssql_execute($stmt);

$this->close();

while($row=mssql_fetch_assoc($res))
{
$r[] = $row;
}
mssql_free_result($res);
mssql_free_statement($stmt);
return $r;
}
/**
* Get one row return Array
* @param <type> $sql
* @return <type> Array
*/
function getRowArray($sql)
{
$res = $this->query($sql);
$r = mssql_fetch_row($res);
mssql_free_result($res);
return $r;
}
/**
* Get one row return object
* @param <type> $sql Sql
* @return <type> Object
*/
function getRowObject($sql)
{
$res = $this->query($sql);
$r = mssql_fetch_assoc($res);
return $r;

}
/**
* Execute one sql
* @param <type> $sql Sql
* @return <type> result
*/
function query($sql)
{
$this->connect();
$res = mssql_query($sql,$this->link);
$this->close();
return $res;
}

/**
* Get every row from result by Object, Return a Array with every element is Object
* @param <type> $sql
* @return <type> Object Array result
*/
function getResult($sql)
{
$res = $this->query($sql);
while($row=mssql_fetch_assoc($res))
{
$r[] = $row;
}
unset($row);
mssql_free_result($res);
return $r;
}

/**
* execute a sql
* @param <type> $sql Sql
*/
function executeSql($sql)
{
return $this->query($sql);
}

/**
* execute a sql statement
* @param <type> $sql
* @return <type> int $affected rows
*/
function querySql($sql)
{
$this->connect();
mssql_query($sql,$this->link);
$affected = mssql_rows_affected($this->link);
$this->close();
return $affected;
}

/**
* close connection
*/
function close()
{
mssql_close();
}
}
?>

下面說下調用
function __autoload($MssqlUtil)
{
require $MssqlUtil.'.php';
}
$db = new MssqlUtil($config['host'],$config['user'],$config['keys'],$config['base']);
主要說下帶參數的存儲過程調用
$pName 存儲過程名字
$parName 參數,參數形式很重要,是數組類型,對應關系為
array('@a'=>'a') @a 為存儲過程里面的參數,a為要傳遞的值
$sqlTyle 是存儲過程參數的數據類型,是數組形式,也很重要
array(SQLCHAR,SQLVARCHAR),注意不要加單引號等,因為SQLVARCHAR是SQL的一些常量

帶參數存儲過程
$db->executeProcedur($pName,$parName,$sqlTyle);
無參數存儲過程
$db->executeProcedurNoPar($pName);

來自:http://www.cnblogs.com/pochonlee/

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 午夜精品久久久久久 | 国产农村妇女毛片精品久久 | 欧美综合区 | freexx性欧美黑人 | 成人在线欧美 | 亚洲成年网站在线777 | 久草视频福利在线观看 | 中文字幕精品在线观看 | 国产欧美日韩综合精品二区 | 日本免费区 | 中文字幕一区二区在线观看 | 2020久久精品亚洲热综合 | 最近中文字幕视频 | 波多野结衣视频免费看 | 久久久久综合国产 | 日本一区二区三区四区无限 | 国产一级成人毛片 | 噜噜噜私人影院 | 欧美一级日韩 | 欧美极度另类精品 | 另类天堂网 | 国产三级精品在线观看 | 最新激情网站 | 久久久亚洲天堂 | 欧美日韩一区二区三区免费不卡 | 亚洲高清日韩精品第一区 | 久久无码av三级 | 国产xxx护士爽免费看 | 亚洲国产欧美日韩精品一区二区三区 | 一级做a爰片性色毛片中国 一级做a爰全过程免费视频毛片 | 美女上床网站 | 日本8888xxxx免费视频 | 亚洲视频在线免费观看 | 国产永久免费爽视频在线 | 亚洲欧美一区二区久久 | 久久精品女人毛片国产 | 久久99久久99精品免观看麻豆 | 欧美亚洲日本一区 | 欧美日韩一区二区三区视频在线观看 | 国产精品免费福利 | 亚洲一一在线 |