我正在寻找一种在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
有什么建议吗?
答案 0 :(得分:1)
BSON规范支持许多不同的field types。
您正在调用的bson_encode
函数用于将数据序列化为BSON文档,该文档必须采用UTF-8格式。这是一个用于驱动程序的低级功能。
如果您想在字段中存储或检索二进制数据,则应使用MongoBinData class。