gpt4 book ai didi

php - 如何使用 Laravel 将二进制数据插入数据库?

转载 作者:可可西里 更新时间:2023-10-31 23:48:10 24 4
gpt4 key购买 nike

我正在尝试使用 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]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8": 0x89 (SQL: insert into "DataBlobs" ("Data") values (binary gibberish that my console tries to render)

我已经使用 var_dump 和 bin2hex 验证 $d 实际上是一个包含我想要的数据的二进制字符串,但是从错误来看,Laravel 似乎试图将二进制数据作为 UTF8 字符串而不是作为二进制数据。我已经在谷歌上搜索了一天,但找不到任何有关如何使用 Laravel 将二进制数据插入数据库的示例。任何帮助将不胜感激!

最佳答案

你可以使用DB::毫无准备( $code );要么 数据库::插入()

关于php - 如何使用 Laravel 将二进制数据插入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22270935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com