mssql_bind
(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)
mssql_bind — ストアドプロシージャまたはリモートストアドプロシージャへパラメータを追加する
説明
$stmt
, string $param_name
, mixed &$var
, int $type
[, bool $is_output = false
[, bool $is_null = false
[, int $maxlen = -1
]]] )ストアドプロシージャまたはリモートストアドプロシージャへパラメータをバインドします。
パラメータ
-
stmt -
mssql_init() で取得したステートメントリソース。
-
param_name -
パラメータ名を表す文字列。
注意:
T-SQL 構文のように @ 文字を含めなければなりません。 mssql_execute() にある例を参照ください。
-
var -
MSSQL パラメータとしてバインドする PHP 変数。 値渡し、参照渡しのどちらも可能です。実行後に OUTPUT や RETVAL を取得するには参照渡しとします。
-
type -
SQLTEXT,SQLVARCHAR,SQLCHAR,SQLINT1,SQLINT2,SQLINT4,SQLBIT,SQLFLT4,SQLFLT8,SQLFLTNのいずれか。 -
is_output -
値が OUTPUT パラメータであるかどうか。OUTPUT パラメータであることに気づかなかった場合、それは通常の INPUT パラメータとして扱われ、エラーは発生しません。
-
is_null -
パラメータが
NULLかどうか。NULL値をvarに渡しても正しく動作しません。 -
maxlen -
char/varchar 値で使用します。データの長さを指定する必要があります。 たとえばパラメータが varchar(50) の場合、型は
SQLVARCHARで、この値が 50 となります。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例
例1 mssql_bind() の例
<?php
// MSSQL に接続し、データベースを選択します
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');
// 新しいストアドプロシージャを作成します
$stmt = mssql_init('NewUserRecord');
// フィールド名をバインドします
mssql_bind($stmt, '@username', 'Kalle', SQLVARCHAR, false, false, 60);
mssql_bind($stmt, '@name', 'Kalle', SQLVARCHAR, false, false, 60);
mssql_bind($stmt, '@age', 19, SQLINT1, false, false, 3);
// 実行します
mssql_execute($stmt);
// ステートメントを開放します
mssql_free_statement($stmt);
?>
参考
- mssql_execute() - MS SQL サーバーデータベースでストアドプロシージャを実行する
- mssql_free_statement() - ステートメントのメモリを開放する
- mssql_init() - ストアドプロシージャまたはリモートのストアドプロシージャを初期化する