PHP 8.1.0 RC 2 available for testing

ibase_service_attach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_attachサービスマネージャに接続する

説明

ibase_service_attach(string $host, string $dba_username, string $dba_password): resource|false

パラメータ

host

データベースホストのIPアドレスまたは名前。 '/' とポート番号を追加することでポートを定義できます。 ポートが指定されない場合、3050 が使われます。

dba_username

有効なユーザー名

dba_password

ユーザーのパスワード

返り値

成功時には、Interbase / Firebird へのリンクの識別子を返します。 失敗した場合に false を返します

例1 ibase_service_attach() の例

<?php
    
// リモートの Firebird サーバにIPアドレスでアタッチ
    
if (($service ibase_service_attach('10.1.1.199''sysdba''masterkey')) != FALSE) {
        
        
// アタッチ成功
        // サーバのバージョン('LI-V3.0.4.33054 Firebird 3.0'のようなもの)を取得
        
$server_version  ibase_server_info($serviceIBASE_SVC_SERVER_VERSION);

        
// サーバの実装を取得 ('Firebird/Linux/AMD/Intel/x64' のようなもの)
        
$server_implementation ibase_server_info($serviceIBASE_SVC_IMPLEMENTATION);

        
// サーバからデタッチ(切断)
        
ibase_service_detach($service);

        
// 情報を出力
        
echo "Server version: " $server_version "<br/>";
        echo 
"Server implementation: " $server_implementation;
    }
    else {
        
// エラー時にはメッセージを出力
        
$conn_error ibase_errmsg();
        die(
$conn_error);
    }

?>

例2 hostname/port を使った ibase_service_attach() の例

<?php
    
// リモートの Firebird サーバに名前とポート3050を使ってアタッチ
    
if (($service ibase_service_attach('FB-SRV-01.contoso.local/3050''sysdba''masterkey')) != FALSE) {
        
        
// アタッチ成功
        // サーバのバージョン('LI-V3.0.4.33054 Firebird 3.0'のようなもの)を取得
        
$server_version  ibase_server_info($serviceIBASE_SVC_SERVER_VERSION);

        
// サーバの実装を取得 ('Firebird/Linux/AMD/Intel/x64' のようなもの)
        
$server_implementation ibase_server_info($serviceIBASE_SVC_IMPLEMENTATION);

        
// サーバからデタッチ(切断)
        
ibase_service_detach($service);

        
// 情報を出力
        
echo "Server version: " $server_version "<br/>";
        echo 
"Server implementation: " $server_implementation;
    }
    else {
        
// エラー時にはメッセージを出力
        
$conn_error ibase_errmsg();
        die(
$conn_error);
    }

?>

参考

add a note add a note

User Contributed Notes 3 notes

up
1
Paul Vinkenoog
13 years ago
The previous comment is incorrect. You can connect to the Service Manager as any valid user, and connecting to the Service Manager is not the same as connecting to the security database. However, some of the service functions (which you may subsequently call with the service handle returned by ibase_service_attach) are only available to SYSDBA.
up
0
houston_roadrunner at yahoo dot com
15 years ago
When using this function it looks like you can only use SYSDBA as the user, as you are connecting to the security database. This is a restriction by the interbase/firebird server.
up
0
Anonymous
15 years ago
An example of ibase_service_attach:
<?php
   
//attach to the server running on localhost
   
if (($service = ibase_service_attach('localhost', 'sysdba', 'masterkey')) != FALSE) {
       
//retrieve server info
       
$server_info  = ibase_server_info($service, IBASE_SVC_SERVER_VERSION)
                      .
' / '
                     
. ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);
       
//detach from server (disconnect)
       
ibase_service_detach($service);
    }
    else {
       
$ib_error = ibase_errmsg();
    }
echo
$server_info;
?>
Should echo something like:

WI-T2.0.0.12484 Firebird 2.0 Release Candidate 1 / Firebird/x86/Windows NT

Taken/adapted from ibWebAdmin source code
To Top