【问题标题】:is it possible to convert a string to varbinary in PHP without using the SQL function是否可以在不使用 SQL 函数的情况下在 PHP 中将字符串转换为 varbinary
【发布时间】:2011-01-08 23:12:20
【问题描述】:

我想知道是否可以使用 PHP 将字符串转换为 varbinary 以获得与使用 SQL 函数 CONVERT(varbinary, 'data') 相同的效果我想这样做,因为我正在使用 codeigniter 并想使用活动记录对于这个查询,因此不能直接使用 SQL 字符串,而是需要将数据插入到 MS-SQL 中的 varbinary 字段中。

谢谢:)

【问题讨论】:

    标签: php sql-server codeigniter


    【解决方案1】:

    如果您使用的是最新版本的 PHP,则可以将字符串转换为二进制文件。

    $binary = (binary)$string;
    

    在 PHP 5.2.1 中添加了(二进制)强制转换和 b 前缀向前支持

    http://www.php.net/manual/en/language.types.type-juggling.php

    【讨论】:

      【解决方案2】:
      public static function str2bin($str) { 
        return '0x'.strtoupper(bin2hex($str));
      }
      

      【讨论】:

      • 感谢 Till,这对我进行另一种转换时帮助很大。 $data = hex2bin(substr($data, 2));
      • 这正是我正在寻找的,但它返回一个二进制值作为字符串。有什么办法可以解决这个问题,因为我需要将原始二进制值插入数据库,而不是 varchar。
      【解决方案3】:

      你也可以使用打包功能

      示例 将 {326546, 4356345, 43646346, 366357547} 转换为 var-binary 作为 Unsigned int

      $_BIN=pack('I*', 326546, 4356345, 43646346, 366357547);

      您可以在以下位置找到更多示例 http://www.php.net/manual/en/function.pack.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多