使用方法
PHP スクリプトにモジュールをロードし、SQL Relay 関数を呼び出すことでモジュールを使用できます。
例:
dl("sql_relay.so");$con=sqlrcon_alloc("adasz",9000,"","user1","password1",0,1);$cur=sqlrcur_alloc($con);sqlrcur_sendQuery($cur,"select table_name from user_tables");sqlrcon_endSession($con);for ($i=0; $i<sqlrcur_rowCount($cur); $i++){ printf("%s\n",sqlrcur_getField($cur,$i,"table_name"));}sqlrcur_free($cur);sqlrcon_free($con);
dl(sql_relay.so) を実行する代わりに、次のような行を置くこともできます:
extension=sql_relay .sophp.ini ファイル内。これを行うと、スクリプトを実行するたびにライブラリがロードおよびアンロードされるのではなく、Web サーバーの起動時に一度だけロードおよびアンロードされるため、パフォーマンスが向上します。
関数 int sqlrcon_alloc(string サーバー, int ポート, 文字列ソケット, 文字列ユーザー, 文字列パスワード、 int retrytime、 int Trys)「ポート」上の「サーバー」またはローカルマシン上の UNIX 「ソケット」への接続を開始し、「ユーザー」と「パスワード」で認証します。失敗した接続は、「retrytime」間隔で「trys」回再試行されます。 "tries" が 0 の場合、再試行は永久に継続されます。 "retrytime" が 0 の場合、デフォルトの間隔で再試行が試行されます。
"socket" パラメータが NULL でも "" でもない場合、" の "server" への接続を試行する前に、それを介した接続が試行されます。ポート"。 NULL または "" の場合、ソケットを介した接続は試行されません。*/
void sqlrcon_free(int sqlrconref)
まだ終了していない場合は、セッションを切断して終了します。
void sqlrcon_setTimeout (int timeoutsec, int timeoutusec)
サーバー接続タイムアウトを秒とミリ秒で設定します。いずれかのパラメータを -1 に設定すると、タイムアウトが無効になります。
void sqlrcon_endSession(int sqlrconref)
セッションを終了します
void sqlrcon_suspendSession(int sqlrconref)
このクライアントを現在のセッションから切断しますが、別のクライアントが接続できるようにセッションを開いたままにしますsqlrcon_resumeSession() を使用して接続します。
int sqlrcon_getConnectionPort(int sqlrconref)
クライアントが通信している inet ポートを返します。このパラメーターは、sqlrcon_resumeSession() コマンドで使用するために別のクライアントに渡すことができます。注: この関数によって返される値は、sqlrcur_suspendSession() の呼び出し後にのみ有効です。
string sqlrcon_getConnectionSocket(int sqlrconref)
クライアントが通信している UNIX ソケットを返します。このパラメーターは、sqlrcon_resumeSession() コマンドで使用するために別のクライアントに渡すことができます。注: この関数によって返される値は、sqlrcur_suspendSession() の呼び出し後にのみ有効です。
int sqlrcon_resumeSession(int sqlrconref, int port, stringソケット)
sqlrcon_suspendSession() を使用して、以前に開いたままにしたセッションを再開します。成功した場合は 1 を返し、失敗した場合は 0 を返します。
int sqlrcon_ping(int sqlrconref)
データベースが起動している場合は 1 を返し、停止している場合は 0 を返します。
string sqlrcon_identify(int sqlrconref)
データベースのタイプを返します: oracle8、 postgresql、mysql など
string sqlrcon_dbVersion(int sqlrconref)
データベースのバージョンを返します
string sqlrcon_serverVersion(int sqlrconref)
SQL Relayサーバー ソフトウェアのバージョンを返します
文字列 sqlrcon_clientVersion(int sqlrconref)
SQL Relay クライアント ソフトウェアのバージョンを返します
string sqlrcon_bindFormat(int sqlrconref)
データベースで使用されるバインド変数の形式を表す文字列を返します
int sqlrcon_autoCommitOn(int sqlrconref)
データベースに次のことを指示します実行するクエリが成功するたびにコミットします。
int sqlrcon_autoCommitOff(int sqlrconref)
クライアントがいつコミットするかを指示するのを待つようにデータベースに指示します。
int sqlrcon_commit(int sqlrconref)
コミットを発行します。コミットが成功した場合は 1、失敗した場合は 0、エラーが発生した場合は -1 を返します。
int sqlrcon_rollback(int sqlrconref)
ロールバックを発行します。ロールバックが成功した場合は 1、失敗した場合は 0、エラーが発生した場合は -1 を返します。
void sqlrcon_debugOn(int sqlrconref)
詳細なデバッグ情報を標準出力に送信します。これを行うもう 1 つの方法は、クエリを「--debugn」で開始することです。
void sqlrcon_debugOff(int sqlrconref)
デバッグをオフにします
int sqlrcon_getDebug(int sqlrconref)
デバッグがオフの場合は FALSE を返しますデバッグする場合は TRUE is on
int sqlrcur_alloc(int sqlrconref) void sqlrcur_free(int sqlrcur) void sqlrcur_setResultSetBufferSize(int sqlrcurref, int rows)
一度にバッファする結果セットの行数を設定します。 0 (デフォルト) は、結果セット全体をバッファリングすることを意味します。
int sqlrcur_getResultSetBufferSize(int sqlrcurref)
一度にバッファリングされる結果セットの行数を返すか、結果セット全体に対して 0 を返します。
void sqlrcur_dontGetColumnInfo(int sqlrcurref)
列情報 (名前、型、サイズ) を送信しないようにサーバーに指示します。その情報が必要ない場合は、パフォーマンスを向上させるためにこの関数を呼び出す必要があります。
void sqlrcur_mixedCaseColumnNames(int sqlrcurref)
列名は、データベースで定義されているのと同じ大文字と小文字で返されます。これがデフォルトです。
void sqlrcur_upperCaseColumnNames(int sqlrcurref)
列名は大文字に変換されます。
void sqlrcur_ lowerCaseColumnNames(int sqlrcurref)
列名は小文字に変換されます。
void sqlrcur_getColumnInfo(int sqlrcurref)
サーバーに列情報を送信するように指示します。
void sqlrcur_cacheToFile(int sqlrcurref, string filename)
クエリ キャッシュをオンに設定します。今後のクエリはファイル「filename」にキャッシュされます。デフォルトの存続時間 10 分も設定されています。 sqlrcur_cacheToFile() が呼び出されると、sqlrcur_cacheToFile() の別の呼び出しによってキャッシュ先のファイルが変更されるか、sqlrcur_cacheOff() の呼び出しによってキャッシュがオフになるまで、今後のすべてのクエリの結果セットがそのファイルにキャッシュされることに注意してください。 sqlrcur_setCacheTtl(int sqlrcurref, int ttl)
キャッシュされた結果セットの有効期間を設定します。 sqlr-cachemanger は、キャッシュされた各結果セットを作成後 "ttl" 秒後に削除します。
string sqlrcur_getCacheFileName(int sqlrcurref)
最後にキャッシュされた結果セットを含むファイルの名前を返します。
void sqlrcur_cacheOff(int sqlrcurref) )
クエリ キャッシュをオフに設定します。
クエリで置換やバインド変数を使用する必要がない場合は、次の 2 つの関数を使用します。
int sqlrcur_sendQuery(int sqlrcurref, string query)
「クエリ」と戻りセットを取得します。成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
int sqlrcur_sendQueryWithLength(int sqlrcurref, string query, int length)
長さ「length」の「query」を送信し、結果セットを取得します。この関数は、クエリにバイナリ データが含まれる場合に使用する必要があります。
int sqlrcur_sendFileQuery(int sqlrcurref, string path, string filename)
ファイル "path"/"filename" でクエリを送信し、戻りセットを取得します。成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
置換変数またはバインド変数を使用する必要がある場合は、クエリで次の関数を使用します。代替およびバインド変数の詳細については、APIドキュメントを参照してください。長さ「length」の「query」を実行します。この関数は、クエリにバイナリ データが含まれる場合に使用する必要があります。
void sqlrcur_prepareFileQuery(int sqlrcurref, string path, string filename)
「パス」/「ファイル名」の内容を実行する準備をします。
void sqlrcur_substitution(int sqlrcurref 、文字列変数、文字列値)
void sqlrcur_substitution(int sqlrcurref、文字列変数、long 値)void sqlrcur_substitution(int sqlrcurref、文字列変数、double 値、短い精度、短いスケール)
置換変数を定義します。置換が成功した場合は true を返し、渡されたデータの型が string、long、double ではなかった場合、または double の精度と位取りが渡されなかった場合は false を返します。
void sqlrcur_clearBinds(int sqlrcurref)
Clearすべてのバインド変数。
void sqlrcur_countBindVariables(int sqlrcurref)
事前に準備されたクエリを解析し、その中で定義されているバインド変数の数をカウントし、その数を返します。void sqlrcur_inputBind(int sqlrcurref, 文字列変数, 文字列値)
void sqlrcur_inputBind(int sqlrcurref、文字列変数、long 値)void sqlrcur_inputBind(int sqlrcurref、文字列変数、double 値、短い精度、短いスケール)
void sqlrcur_inputBindBlob(int sqlrcurref、文字列変数、長い長さ)void sqlrcur_inputBindClob( int sqlrcurref 、文字列変数、長い長さ)
入力バインド変数を定義します。バインドが成功した場合は true を返し、渡されたデータの型が string、long、double ではなかった場合、または double の精度とスケールが渡されなかった場合は false を返します。
void sqlrcur_defineOutputBindString(int sqlrcurref, string variable) , int length)
文字列出力バインド変数を定義します。 「length」バイトは、値を保存するために予約されます。
void sqlrcur_defineOutputBindDouble(int sqlrcurref, string variable)
倍精度浮動小数点出力バインド変数を定義します。
void sqlrcur_defineOutputBindBlob(int sqlrcurref, string variable)
BLOB 出力バインド変数を定義します。
void _defineOutputBindClob(int sqlrcurref, string変数)
CLOB 出力バインド変数を定義します。
void sqlrcur_defineOutputBindCursor(int sqlrcurref, string variable)
カーソル出力バインド変数を定義します。
void sqlrcur_validateBinds(int sqlrcurref)
そうでないかもしれない変数実際にクエリ内にある場合は、これを呼び出して、実際にクエリ内にない限りデータベースがそれらをバインドしようとしないようにします。
void sqlrcur_validBind(int sqlrcurref, string variable)
"variable" が有効な場合は true を返しますクエリのバインド変数。
int sqlrcur_executeQuery(int sqlrcurref)
事前に準備されバインドされたクエリを実行します。
int sqlrcur_fetchFromBindCursor(int sqlrcurref)
出力バインド変数として返されたカーソルからフェッチします。
int sqlrcur_getOutputBindString(int sqlrcurref, string variable)
以前に定義した出力バインド変数に格納された値を取得します。
int sqlrcur_getOutputBindBlob(int sqlrcurref, string variable)
以前に定義した出力バインド変数に格納された値を取得します。
int sqlrcur_getOutputBindClob(int sqlrcurref, string variable)
以前に定義した出力バインド変数に格納された値を取得します。
int sqlrcur_getOutputBindInteger(int sqlrcurref, string variable)
以前に定義した出力バインド変数に格納された値を取得します。int sqlrcur_getOutputBindDouble(int sqlrcurref, string variable)
事前に定義した出力バインド変数に格納されている値を取得します。
int sqlrcur_getOutputBindLength(int sqlrcurref, string variable)
事前に定義した出力バインド変数に格納されている値の長さを取得しますVariabias.
int sqlrrcur_getoutputbindcursor(int sqlrrcurref、string variable)実行されていれば生成されていたでしょう。成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
int sqlrcur_colCount(int sqlrcurref)
現在の戻りセット内の列数を返します
int sqlrcur_rowCount(int sqlrcurref)
現在の戻りセット内の行数を返します
int sqlrcur_totalRows(int sqlrcurref)
結果セットで返される行の合計数を返します。すべてのデータベースがこの呼び出しをサポートしているわけではありません。データベース間で移植できるように設計されたアプリケーションには使用しないでください。このオプションをサポートしていないデータベースでは -1 が返されます。
int sqlrcur_affectedRows(int sqlrcurref)
クエリによって更新、挿入、または削除された行の数を返します。すべてのデータベースがこの呼び出しをサポートしているわけではありません。データベース間で移植できるように設計されたアプリケーションには使用しないでください。このオプションをサポートしていないデータベースでは -1 が返されます。
int sqlrcur_firstRowIndex(int sqlrcurref)
バッファリングされた最初の行のインデックスを返します。これは、一度に結果セットの一部のみをバッファリングする場合に便利です。
int sqlrcur_endOfResultSet(int sqlrcurref)
結果セットの一部がまだサーバー上で保留中の場合は 0 を返し、そうでない場合は 1 を返します。 setResultSetBufferSize() が 0 以外のパラメーターで呼び出された場合、この関数は 0 のみを返します。
string sqlrcur_errorMessage(int sqlrcurref)
クエリが失敗してエラーが生成された場合、エラー メッセージはここで確認できます。クエリが成功した場合、この関数は FALSE を返します
string sqlrcur_getNullsAsEmptyStrings(int sqlrcurref)
NULL フィールドを返し、バインド変数を空の文字列として出力するようにクライアントに指示します。これがデフォルトです。
string sqlrcur_getNullsAsNulls(int sqlrcurref)
NULL フィールドを返し、バインド変数を NULL として出力するようにクライアントに指示します。
string sqlrcur_getField(int sqlrcurref, int row, intcol)
returns a値を含む文字列指定された行と列の長さを返します
string sqlrcur_getFieldLength(int sqlrcurref, int row, intcol)
指定された行と列の長さを返します
array sqlrcur_getRow(int sqlrcurref, int row)
インデックス付き配列を返します指定された行の値
array sqlrcur_getRowLengths(int sqlrcurref, int row)
指定された行の長さのインデックス付き配列を返します
array sqlrcur_getRowAssoc(int sqlrcurref, int row)
指定された行の値の連想配列を返します
array sqlrcur_getRowLengthsAssoc(int sqlrcurref, int row)
指定された行の長さの連想配列を返します
配列 sqlrcur_getColumnNames (int sqlrcurref)
現在のリターンセットの列名の配列を再実行します
文字列sqlrcur_getcolumnname(int sqlrcurref、int col) string sqlrcur_getColumnType(int sqlrcurref, int col)
指定された列の型を返します
int sqlrcur_getColumnLength(int sqlrcurref, string col)
int sqlrcur_getColumnLength(int sqlrcurref, int col)
int sqlrcur_getColumnPrecision(int sqlrcurref, stringcol);
int sqlrcur_getColumnPrecision(int sqlrcurref, int col);
int sqlrcur_getColumnScale(int sqlrcurref, string col);
int sqlrcur_getColumnScale(int sqlrcurref, intcol);
int sqlrcur_getColumnIsNullable(int sqlrcurref, string col);
int sqlrcur_getColumnIsNullable(int sqlrcurref, intcol);
int sqlrcur_getColumnIsPrimaryKey(int sqlrcurref, string col);
int sqlrcur_getColumnIsPrimaryKey(int sqlrcurref, intcol);
int sqlrcur_getColumnIsUnique(int sqlrcurref, string col);
int sqlrcur_getColumnIsUnique(int sqlrcurref, int col);
int sqlrcur_getColumnIsPartOfKey(int sqlrcurref, string col);
int sqlrcur_getColumnIsPartOfKey(int sqlrcurref, int col);
int sqlrcur_getColumnIsUnsigned(int sqlrcurref, string col);
int sqlrcur_getColumnIsUnsigned(int sqlrcurref, int col);
int sqlrcur_getColumnIsZeroFilled(int sqlrcurref, string col);
int sqlrcur_getColumnIsZeroFilled(int sqlrcurref, int col);
int sqlrcur_getColumnIsBinary(int sqlrcurref, string col);
int sqlrcur_getColumnIsBinary(int sqlrcurref, intcol);
int sqlrcur_getColumnIsAutoIncrement(int sqlrcurref, string col);
int sqlrcur_getColumnIsAutoIncrement(int sqlrcurref, intcol);
int sqlrcur_getLongest(int sqlrcurref, string col)
int sqlrcur_getLongest(int sqlrcurref, int col)
void sqlrcur_suspendResultSet(int sqlrcurref)
接続がsuspendSession()を呼び出したときにこの結果セットを開いたままにし、resumeSession()を呼び出した後に別の接続がresumeResultSet()を使用してそれに接続できるようにサーバーに指示します。int sqlrcur_getResultSetId( int sqlrcurref)
この結果セットの内部 ID を返します。このパラメータは、resumeResultSet() 関数で使用するために別のステートメントに渡すことができます。注: この関数によって返される値は、sqlrcur_suspendResultSet() の呼び出し後にのみ有効です。
void sqlrcur_resumeResultSet(int sqlrcurref, int id)
suspendSession() を使用して以前に開いたままにした結果セットを再開します。成功した場合は 1 を返し、失敗した場合は 0 を返します。
void sqlrcur_resumeCachedResultSet(int sqlrcurref, int id, string filename)
suspendSession() を使用して以前に開いたままにした結果セットを再開し、結果セットを "filename" にキャッシュし続けます。成功した場合は 1 を返し、失敗した場合は 0 を返します。
著者 Adam Kropielnicki
adasz@wp.pl