odbc_binmode
バイナリカラムデータを処理する
説明
true odbc_binmode(resource $statement
, int $mode
)
バイナリ 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
-
結果 ID。
statement
に 0
を指定した場合、
ここで設定した値は、新規の結果に関するデフォルト値として用いられます。
-
mode
-
mode
には、以下の値が指定できます。
-
ODBC_BINMODE_PASSTHRU
: BINARY データとして通過
-
ODBC_BINMODE_RETURN
: そのまま返す
-
ODBC_BINMODE_CONVERT
: char に変換し返す
注意:
LONGVARBINARY 型のカラムを処理する方法は
odbc_longreadlen によっても影響を受けます。