【问题标题】:upload a large file to a BLOB using oracle and php使用 oracle 和 php 将大文件上传到 BLOB
【发布时间】:2018-10-27 02:05:57
【问题描述】:

所以我试图上传一个 PDF 文件并将其存储在 Oracle 表中的 BLOB 字段中,但是像下面这样的简单查询失败并给出以下错误:

ORA-01704:字符串文字太长。

INSERT INTO tablename  values ('1' , "very large text from fread function ")

任何想法如何解决它?

【问题讨论】:

  • 发布更多代码。我们只能根据您目前发布的内容进行猜测。
  • ORA-01704 表示您将值直接连接到查询中。不仅因为这样的值不能超过 4000 个字符而不起作用,而且还以 SQL 注入的形式引入了漏洞。而是将值绑定到准备好的语句中。

标签: php oracle pdo blob


【解决方案1】:

使用 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 值的记录插入数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-28
    • 2012-08-26
    • 2010-10-25
    • 2011-12-16
    • 2011-03-27
    • 2022-09-24
    • 2012-05-11
    相关资源
    最近更新 更多