在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),并进行搜索。