在Laravel5.2中,使用PostgreSQL将二进制数据(bytea类型)插入到数据库中

我想要用Laravel 5.2来将二进制数据(bytea类型)插入到PostgreSQL数据库中。

## 结论
– 使用PDO。
– 将二进制数据(bytea 类型)作为大对象(LOB)使用。
– 如果可能的话,想知道如何使用查询构建器而不是直接编写 SQL。

环境
– Laravel 5.2
– Laravel/homestead v0.5.0
– Ubuntu 16.04
– PHP7
– Nginx等
– 使用的数据库:PostgreSQL

1. 使用PDO。
2. 将二进制数据(bytea类型)作为大型对象(LOB)进行插入。

    public function up()
    {
        Schema::create('files', function (Blueprint $table) {
            $table->increments('id');
            $table->binary('file_data');
        });
    }
    //$hogeFileはリクエストから取得したFileデータ
    $fileData = file_get_contents($hogeFile);

    //Laravel/homesteadではPostgreSQLはpgsqlとして設定
    $db = DB::connection('pgsql')->getPdo();
    $stmt = $db->prepare("INSERT INTO files (file_data) VALUES (?)");
    $stmt->bindParam(1, $fileData, $db::PARAM_LOB);
 
    $stmt->execute();
    unset($db);

如何从MSSQL服务器检索图像?
使用PHP将图像插入到PostgreSQL 9.3.2的bytea列(BLOB),并进行搜索。

广告
将在 10 秒后关闭
bannerAds