gpt4 book ai didi

php - Yii2 将文件保存到 Oracle BLOB

转载 作者:可可西里 更新时间:2023-11-01 12:57:35 26 4
gpt4 key购买 nike

问题是我无法将文件保存到 blob。它没有任何错误,创建了临时文件,我可以从中读取。我检查了它是否绑定(bind) - 是的,它具有正确的资源值和 \PDO::PARAM_LOB 数据类型。

我有一个 ActiveRecord 类:

class News extends ActiveRecord
{
public function rules()
{
return [
[
['image'],
'image',
'extensions' => 'png jpg',
'maxSize' => 1024 * 300,
]
];
}

public function beforeSave($insert)
{
$fileInfo = UploadedFile::getInstance($this, 'image');
$this->image = fopen($fileInfo->tempName, 'r+');
return parent::beforeSave($insert);
}

}

表:

CREATE TABLE NEWS
(
RN NUMBER(17,0) PRIMARY KEY NOT NULL,
IMAGE BLOB
);

显示此查询的日志:

INSERT INTO "NEWS" ("IMAGE") VALUES (:qp4) RETURNING "RN" INTO :qp8

所以它实际上并没有绑定(bind)它还是什么?

最佳答案

您应该简单地使用图像数据而不是资源指针,例如:

$this->image = file_get_contents($fileInfo->tempName);

编辑:抱歉,您是对的,您需要提供资源指针才能使用 PARAM_LOB 绑定(bind)此参数。

php doc 所述, 你应该尝试使用 transaction ,例如:

News::getDb()->transaction(function($db) use ($model) {
$model->save();
});

关于php - Yii2 将文件保存到 Oracle BLOB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32522404/

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