ホームページ  >  記事  >  バックエンド開発  >  Php Mssql 操作はシンプルで、ストアド プロシージャをサポートするためにカプセル化されています_PHP チュートリアル

Php Mssql 操作はシンプルで、ストアド プロシージャをサポートするためにカプセル化されています_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:42:42859ブラウズ

复制代代码如下:

/*
* クラス:Mssql
* 時間:2009-12-10
* 著者:Libaochang
* バージョン:1.0b
* 説明:mssqlデータベース アクセス クラスでは、プロシージャまたは SQL を実行できます
*/
class MssqlUtil
{
var $user = null; //データベースユーザー名
var $keys = null; //データベースユーザーのパスワード
var $host = 'localhost'; //データベースのホスト名/IP とポート
var $base = null; //データベース名
var $link = null; //リンクを作成
/**
* すべてのパラメータを初期化する関数を構築します
* @param $host データベースのホスト名/IP およびポート
* @param $user データベース ユーザー名
* @param $keys データベース ユーザー パスワード
* @param $base データベース名
*/
function __construct($host,$user,$keys,$base)
{
$this->host = $host;
$this->user = $user;
$this->keys = $keys;
$this->base = $base;
}
/**
* 接続を作成します
*/
function connect()
{
$this->link = mssql_connect($this->host,$this->user,$this->keys);
if(!$this->link)
{
die('接続に失敗しました...モジュールと設定を確認してください...');
}
$select = mssql_select_db($this->base,$this->link);
if(!$select)
{
die('データベースが存在しません...、確認してください...');
}
}
/**
* プロシージャ幅をパラメータで実行します
* @param $pName プロシージャ名
* @param $parName パラメーターは次のようになります $par=array('@a'=>'a')
* @param $sqlTyle プロシージャのパラメータの型。これは $sqlType=array(SQLVARCHAR,SQLVARCHAR); のようになります。 char の一重引用符 (') はありません。
* @return オブジェクト配列
*/
functionexecuteProcedur($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;
}
設定解除($i);
mssql_free_result($res);
mssql_free_statement($stmt);
$r を返す;
}
}
/**
* パラメータを指定せずにプロシージャを実行します
* @param $pName プロシージャ名
* @return オブジェクト配列
*/
functionexecuteProcedurNoPar($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);
$r を返す;
}
/**
* 1 行の戻り配列を取得します
* @param $sql
* @return 配列
*/
function getRowArray($sql)
{
$res = $this->query($sql);
$r = mssql_fetch_row($res);
mssql_free_result($res);
$r を返す;
}
/**
* 1 行の戻りオブジェクトを取得します
* @param $sql SQL
* @return オブジェクト
*/
function getRowObject($sql)
{
$res = $this->query($sql);
$r = mssql_fetch_assoc($res);
$r を返す;
}
/**
* 1 つの SQL を実行します
* @param $sql SQL
* @return 結果
*/
関数クエリ($sql)
{
$this->connect();
$res = mssql_query($sql,$this->link);
$this->close();
$res を返す;
}
/**
* 結果からすべての行をオブジェクトで取得し、すべての要素がオブジェクトである配列を返します
* @param $sql
* @return オブジェクト配列の結果
*/
function getResult($sql)
{
$res = $this->query($sql);
while($row=mssql_fetch_assoc($res))
{
$r[] = $row;
}
unset($row);
mssql_free_result($res);
$r を返す;
}
/**
* SQL を実行します
* @param $sql SQL
*/
functionexecuteSql($sql)
{
return $this->query($sql);
}
/**
* SQL ステートメントを実行します
* @param $sql
* @return int $影響を受ける行
*/
関数 querySql($sql)
{
$this->connect();
mssql_query($sql,$this->link);
$affected = mssql_rows_affected($this->link);
$this->close();
影響を受ける $ を返します。
}
/**
*密接なつながり
*/
関数 close()
{
mssql_close();
}
}
?>


コードをコピーできるとのことです。 コードをコピーします。 Function __Autoload ($ mssqlutil) {Require $ mssqlutil '. $ db = new msqlutil host'],$config['user'],$config['keys'],$config['base']);

主にパラメータを使用したスト​​アド プロシージャ呼び出しについて説明します



コードをコピー
コード次のように:

$pName ストアド プロシージャ名 $parName パラメーター、パラメーターの形式は非常に重要です。配列型です。対応関係は array('@a'=>'a') @a です。ストアド プロシージャ内のパラメータ、a は渡される値です$sqlTyle はストアド プロシージャ パラメータのデータ型であり、配列形式であり、これも非常に重要ですarray(SQLCHAR,SQLVARCHAR) SQLVARCHAR は SQL の定数であるため、一重引用符などを追加しないように注意してください
パラメータ付きストアド プロシージャ
$db->e​​xecuteProcedur($pName,$parName,$sqlTyle); >executeProcedurNoPar($pName);



select * from t2 where t2.id in (select max(t2.id) from t1 join t2 on t1.id = t2.pid group by t1.id);各カテゴリの最新データ。ここにメモを書きます。
t1はカテゴリーテーブル、t2はメインテーブルです



http://www.bkjia.com/PHPjc/320938.html
www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/320938.html

技術記事

を実行できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。