PHP odbc_binmode ODBC 函数



  • 定义和用法

    odbc_binmode - 处理二进制列数据
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    odbc_binmode ( resource $result_id , int $mode )
    
    启用对二进制列数据的处理。 受影响的ODBC SQL类型为BINARY,VARBINARY和LONGVARBINARY。 当二进制SQL数据转换为字符C数据时,源数据的每个字节(8位)都表示为两个ASCII字符。 这些字符以十六进制形式表示数字的ASCII字符。 例如,将二进制00000001转换为“ 01”,将二进制11111111转换为“FF”。
    如果使用odbc_fetch_into(),则passthru表示将为这些列返回一个空字符串。
  • 参数

    参数 必需的 描述
    result_id 结果标识符。 如果result_id为0,则设置将默认应用于新结果。
    注意:longreadlen的默认值为4096,模式默认值为ODBC_BINMODE_RETURN。 二进制长列的处理也受odbc_longreadlen()影响。
    mode 模式的可能值为:
    • ODBC_BINMODE_PASSTHRU:传递二进制数据
    • ODBC_BINMODE_RETURN:原样返回
    • ODBC_BINMODE_CONVERT:转换为char并返回
  • 返回值

    成功时返回 TRUE, 或者在失败时返回 FALSE。
  • 示例

    <?php
    function hex2bin($data){
       $len = strlen($data);
       return pack("H" . $len, $data);
    }
    
    
    $connH=odbc_pconnect("ImageDB","sa","",SQL_CUR_USE_IF_NEEDED) or die(odbc_errormsg());
    $result=odbc_exec($connH, "SELECT Emp_Image FROM tblEmployeePics WHERE Emp_Id=547");
    if ($result) {                           
        odbc_longreadlen($result, 131072);       
        odbc_binmode($result,ODBC_BINMODE_CONVERT);                           
        $m_FValue=odbc_result($result, 1);
        $out=hex2bin($m_FValue);
    }
    
  • 相关函数

    odbc_commit() - 提交ODBC事务
    odbc_rollback() - 回滚事务