当前位置: 首页 > 知识库问答 >
问题:

我需要插入blob内容到mysql表组成的许多列

慕容光启
2023-03-14

我在将blob内容插入表并检索时遇到问题,因为我的表包含一些其他字段以及blob字段,数据插入正确,但当我尝试获取图像时,图像不会显示。但是,如果我使用相同的html" target="_blank">代码插入到一个单独的表中,该表只有两列id、image类型。它正在正确检索。//要插入我正在使用的:

$Image=addslash(file_get_contents($_FILES['upload_file']['tmp_name'])); $image_type=$_FILES['upload_file']['type'];

问题idsubject\u idtopic\u id语言问题解决方案图像类型图像)中插入值(12,'1','1','English','QQQQ?','Ans','Yes','image/jpg','BLOB IMG001');

//要在我使用的屏幕上显示图像,请执行以下操作:

#预览

$preview['image']='';

但是如果我使用2个查询-一个插入,然后是一个更新,其中插入语句将插入字段数据,然后用blob图像更新同一行。这工作得很好。我的问题是,我不能让它插入完整的数据在一个单一的插入语句?这是我目前运行它的方式-1)$id=$问题-

2) $imgData=addslashes(文件获取内容($\u文件['upload\u file']['tmp\u name'])$imageProperties=$\u文件['upload\u文件]['type'];

$exe=$db-

共有1个答案

章盛
2023-03-14

建议使用准备好的语句,并可以插入它。

    public function insertBlob($filePath, $mime) {
        $blob = fopen($filePath, 'rb'); 
        $sql = "INSERT INTO files(mime,data) VALUES(:mime,:data)";
        $stmt = $this->pdo->prepare($sql);
        $stmt->bindParam(':mime', $mime);
        $stmt->bindParam(':data', $blob, PDO::PARAM_LOB); 
        return $stmt->execute();
    }
    
 类似资料:
  • 问题内容: 我需要有关NodeJS和MySQL blob插入的一些帮助。 这是我正在使用的代码片段 查询将文件插入表中,我得到正确的文件大小,但是当我尝试检索文件并打开它(例如PDF文件)时,我收到一条消息,指出文件已损坏。 我必须对从文件读取的缓冲区做些错误。 问题答案: 尝试更换: 与: 您可能还想更改为,因为您只读取文件的前100个字节。如果这样,您可能会在中的前100个字节之后得到一堆额外

  • 我尝试从本地磁盘(Windows 10)向我的RDS MySQL数据库插入一个blob。然而,我的查询没有插入blob。新行包含所有其他列,但blob为空。 以下是我尝试过的: 我设置了文件的读/写权限 安全文件设置为/tmp。。。我不知道这是什么意思。这是路径还是变量?如果它是一个变量,我已经尝试从用户/系统变量“TMP”的路径上传blob,但没有成功。我无法更改安全文件,因为RDS允许更改。。

  • 问题内容: 我正在使用插入命令通过PHP将大型数据集传递到MySQL表中,并且我想知道是否有可能通过查询而不是将每个值附加到一英里长的字符串的末尾一次插入大约1000行,然后执行它。我正在使用CodeIgniter框架,因此我也可以使用它的功能。 问题答案: 在MySQL中,用多行汇编一条语句要比每行一条语句快得多。 也就是说,听起来您可能会遇到PHP中的字符串处理问题,这实际上是算法问题,而不是

  • 问题内容: 我有以下声明: 我需要为role_id 101-355生成一行(因此,与上述相同的语句,除了随着role_id递增而重复)。最好的方法是什么?为了完成这项工作,我打算编写一个快速的C#应用​​程序,该应用程序将有一个循环,但是我确信这不是最好的方法,希望在这里学习一些东西,以免将来不得不这样做(因为我确保这种情况很常见)。 问题答案: 您应该使用数字表,如果没有数字表,可以这样使用:

  • 问题内容: 是否可以插入一行并在同一查询中插入值? 就像是… 然后,获取ID并执行 但是只使用一个查询。 问题答案: 您可以调用存储过程,该过程将执行插入操作,并在一次调用中将结果集从应用程序层返回到mysql: 存储过程调用 简单的例子:

  • 在本教程中将学习如何使用Oracle 语句将多行插入到一个或多个表中。 在之前的教程中,我们已经学习了如何在表中插入一行。 但是,有时我们可能希望将多行插入到一个或多个表中。 在这种情况下,就可以使用Oracle 语句,该语句也被称为多项式插入语句。 Oracle提供了两种类型的多项式插入语句:无条件的和有条件的。 1. 无条件的Oracle INSERT ALL语句 将多行插入到表中,要将多行插