バイナリカラムデータを処理する

# odbc_binmode

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_binmode — バイナリカラムデータを処理する

### 説明

function odbc_binmode(Odbc\Result `$statement`, int `$mode`): true

バイナリカラムデータを処理する方法を制御します。 (関係するODBC SQL型: `BINARY`, `VARBINARY`, `LONGVARBINARY`)。 デフォルトの処理モードは、php.ini の uodbc.defaultbinmode 経由で設定できます。

バイナリ SQL データが文字データに変換される時 (`ODBC_BINMODE_CONVERT`)、ソースデータの 各バイト (8 ビット) は、2 つのアスキー文字で表現されます。 これらの文字は、16 進表現で数値をアスキー文字で表現したものです。 例えば、2 進数 `00000001` は `"01"` に変換され、 `11111111` は `"FF"` に変換されます。

`BINARY` と `VARBINARY` 型のカラムを処理する方法は binmode によって決まります。`LONGVARBINARY` 型のカラムを処理する方法は、 longreadlen にも依存します:

LONGVARBINARY 処理
binmode | longreadlen | 結果
--- | --- | ---
`ODBC_BINMODE_PASSTHRU` | >0 | 通過
`ODBC_BINMODE_RETURN` | >0 | 通過
`ODBC_BINMODE_CONVERT` | >0 | 通過
`ODBC_BINMODE_PASSTHRU` | 0 | 通過
`ODBC_BINMODE_RETURN` | >0 | そのまま返す
`ODBC_BINMODE_CONVERT` | >0 | char として返す

odbc_fetch_into() を使用した場合、 「通過」は空文字列が対応するカラムに返されることを意味します。 odbc_result() を使用した場合、 「通過」はデータがクライアントに直接送信されることを意味します(つまり、表示されます)。

### パラメータ

`statement`

  ODBC 結果オブジェクト

`mode`

  `mode` には、以下の値が指定できます。

  - `ODBC_BINMODE_PASSTHRU`: BINARY データとして通過
  - `ODBC_BINMODE_RETURN`: そのまま返す
  - `ODBC_BINMODE_CONVERT`: char に変換し返す

  > 注意: LONGVARBINARY 型のカラムを処理する方法は odbc_longreadlen() によっても影響を受けます。

### 戻り値

常に `true` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.4.0 | 引数 `statement` は、Odbc\Result クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、resource を期待していました。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open