array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.odbc-binmode.php', 1 => 'odbc_binmode', ), 'up' => array ( 0 => 'ref.uodbc.php', 1 => 'ODBC 関数', ), 'prev' => array ( 0 => 'function.odbc-autocommit.php', 1 => 'odbc_autocommit', ), 'next' => array ( 0 => 'function.odbc-close-all.php', 1 => 'odbc_close_all', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/uodbc/functions/odbc-binmode.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_binmode — バイナリカラムデータを処理する
バイナリカラムデータを処理する方法を制御します。
(関係する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 にも依存します:
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() によっても影響を受けます。