我正在尝试使用 Laravel 4 及其 Eloquent ORM 将二进制数据插入到 PostgreSQL 数据库中。我在迁移中有以下内容:
Schema::create('DataBlobs', function($table) {
$table->increments('Id');
$table->binary('Data');
});
运行迁移后,我已验证它是否创建了 PostgreSQL BYTEA 列。伟大的!所以我将其放入数据库播种函数中:
DB::table('DataBlobs')->delete();
// $d contains the binary data I want to insert into the database.
$d = base64_decode($raw_b64data);
$i = new DataBlob();
$i->Data = $d;
$i->save();
然而,当我运行该播种器时,出现以下错误:
SQLSTATE[22021]:字符不在曲目中:7错误:编码“UTF8”的字节序列无效:0x89(SQL:插入“DataBlobs”(“数据”)值(我的控制台尝试呈现的二进制乱码)
我已经使用 var_dump 和 bin2hex 验证了 $d 实际上是一个包含我想要的数据的二进制字符串,但从错误来看,Laravel 似乎试图将二进制数据作为 UTF8 字符串而不是二进制数据插入。我已经在谷歌上搜索了一天,但找不到任何有关如何使用 Laravel 将二进制数据插入数据库的示例。任何帮助,将不胜感激!
您可以使用
DB::未准备好( $code );
或者
数据库::插入()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)