使用oracle和php将大文件上载到BLOB
因此,我尝试上载一个PDF文件并将其存储在Oracle表中的使用oracle和php将大文件上载到BLOB,php,oracle,pdo,blob,Php,Oracle,Pdo,Blob,因此,我尝试上载一个PDF文件并将其存储在Oracle表中的BLOB字段中,但下面这样的简单查询失败,并出现以下错误: ORA-01704:字符串文字太长 有什么办法解决吗 使用PDO 您可以尝试此模板: $db= new PDO("oci:dbname=dbnamehere","dbusername","dbpassword"); $stmt = $db->prepare("INSERT INTO tablename (pid, pdf) VALUE(NULL, :pdf);"); $
BLOB
字段中,但下面这样的简单查询失败,并出现以下错误:
ORA-01704:字符串文字太长
有什么办法解决吗 使用PDO
您可以尝试此模板:
$db= new PDO("oci:dbname=dbnamehere","dbusername","dbpassword");
$stmt = $db->prepare("INSERT INTO tablename (pid, pdf) VALUE(NULL, :pdf);");
$fp = fopen("files/a.pdf", 'rb');
$stmt->bindParam(":pdf", $fp, PDO::PARAM_LOB);
$stmt->execute();
此模板将带有blob值的记录插入数据库。发布更多代码。我们只能猜测您目前发布的内容。ORA-01704表示您将值直接连接到查询中。它不仅不能工作,因为这些值不能超过4000个字符,还引入了SQL注入形式的漏洞。将该值绑定到一个准备好的statement中。
$db= new PDO("oci:dbname=dbnamehere","dbusername","dbpassword");
$stmt = $db->prepare("INSERT INTO tablename (pid, pdf) VALUE(NULL, :pdf);");
$fp = fopen("files/a.pdf", 'rb');
$stmt->bindParam(":pdf", $fp, PDO::PARAM_LOB);
$stmt->execute();