BSON编码与二进制数据

时间:2014-01-03 10:22:43

标签: php mongodb binary bson

我正在寻找一种在BSON中编码一些二进制数据的方法。因为BSON代表二进制json,我认为这很简单。

但是当我想使用bson_encode打包一些二进制数据时(来自mongoDB包PHP)

我得到了一个例外

$data = AD_Dbase::GetSingleRowResult("SELECT ghost_data FROM ghosts WHERE id=1"); // binary data(blob in mysql)

echo bson_encode(array(1,"this is a test",$data));

例外:

Fatal error: Uncaught exception 'MongoException' with message 'non-utf8 string: 3' in test.php:7 Stack trace: #0 test.php(7): bson_encode(Array) #1 {main} thrown in test.php on line 7 

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

BSON规范支持许多不同的field types

您正在调用的bson_encode函数用于将数据序列化为BSON文档,该文档必须采用UTF-8格式。这是一个用于驱动程序的低级功能。

如果您想在字段中存储或检索二进制数据,则应使用MongoBinData class