【发布时间】:2015-09-12 20:17:23
【问题描述】:
我正在使用这个包装器,因为 PHP 中的 Oracle PDO 是实验性的: https://github.com/yajra/pdo-via-oci8
下面是插入 BLOB 的 PHP 代码,该代码在 MySQL 中有效,但在 Oracle 中尚不可用:
public function insertPacket($nist) {
$blob = fopen($nist->getActualFile(), 'rb');
$sql = "INSERT INTO packets(packet) VALUES(:packet)";
$query = $this->link->prepare($sql);
$query->bindParam(':packet', $blob, PDO::PARAM_LOB);
if(!$query->execute()) {
trigger_error(print_r($query->errorInfo(), true), E_USER_ERROR);
}
return $this->link->lastInsertId();
}
在 oracle 中我得到了这个异常: 致命错误:第 156 行 C:\wamp\www\project\includes\PdoViaOci8\Statement.php 中带有消息的未捕获异常“Oci8Exception”
Oci8Exception: Error Code : 22275
Error Message : ORA-22275: invalid LOB locator specified
Position : 12
Statement : INSERT INTO packets(packet) VALUES(:packet)
任何想法我做错了什么?
【问题讨论】: