PHP使用PDO将图像上传到mysql数据库?

OUD*_*UDK 1 php mysql database pdo

我有一个数据库设置,我正在尝试上传图像.该数据库名为'blob',有3个字段.id,名称和图像,图像设置为blob.当尝试上传图像时,我得到一个我不确定的错误.以下是我的代码.

<?php
include ("dbConnect.php");
?>

<form action="imageuploadtest.php" enctype="multipart/form-data" method="post">
<input name="image" type="file"><input name="submit" type="submit" value="Upload">
</form>

<?php 

if(isset($_POST['submit']))
{

  $imageName = $_FILES["image"]["name"];
  $imageData = file_get_contents($_FILES["image"]["tmp_name"]);
  $imageType = $_FILES["image"]["type"];

  if(substr($imageType,0,5)=="image")
  {
     $dbQuery = $db->prepare("INSERT INTO blob ( name, image) VALUES ('$imageName', '$imageData')");
     $dbQuery->execute();
  }
  else
  {
   echo "only images are allowed";
  } 
}
?>
Run Code Online (Sandbox Code Playgroud)

数据库连接很好,但我收到以下错误消息,我很想知道如何解决.

 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters' in N:\ftp\compc\d12ac1\FlightsFromNI\imageuploadtest.php:23 Stack trace: #0 N:\ftp\compc\d12ac1\FlightsFromNI\imageuploadtest.php(23): PDO->prepare('INSERT INTO blo...') #1 {main} thrown in N:\ftp\compc\d12ac1\FlightsFromNI\imageuploadtest.php on line 23.
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.谢谢.

编辑:现在已将我的表名从blob更改为imgupload但仍然得到相同的错误消息?

Fun*_*ner 5

blob 是一个MySQL保留字

将表重命名为其他内容,或使用它周围的刻度:

INSERT INTO `blob` ...
Run Code Online (Sandbox Code Playgroud)

注意:通常最好将文件存储在文件夹中并引用该文件,而不是将二进制数据存储在表中.这最终将大大增加您的数据库大小.