首页 > 解决方案 > 如何将图像插入数据库?

问题描述

我创建 CMS,我想将图像插入数据库。当我单击提交按钮时,程序会插入数据库标题、内容,但没有图像。在注册之前,一个程序将一个图像插入到数据库中。我不知道为什么不知道。我可能会犯任何我找不到的字面错误。

require_once('database.php');
 
class dodawanie extends database
{
    private $errors ='';
    private $img;
 
 public function get_image()
 {
     return $this->img;
 }
  
  public function set_image($img)
 {
     $this->img = $img;
 }
 public function insert()
 {
     $field1 = $this->get_title();
     $field2 = $this->get_content();
     $field3 = $this->get_image();
     $field4 = date('Y-m-d H:i:s');
      
      
     if(empty($this->errors))
     {
     $sql = "INSERT INTO wiadomosci(`tytul`, `news`, `zdjecie`, `data_dodania`) VALUES('".$field1."', '".$field2."', '".$field3."', '".$field4."')";
      
     $result = $this->connect()->query($sql);
         
     }
 }
 
 
if(isset($_POST['submit']))
{
    $add = new dodawanie();
   $fault3 = $add->set_image($_POST['avatar']);
   echo $abc3 = $add->get_image();
   $inser = $add->insert();

标签: phpmysql

解决方案


首先要在 MySQL 中插入图像,我们必须在数据库中创建一个表。

运行 MYSQL 命令

CREATE TABLE `image` (
`image` LONGBLOB NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

然后如果 index.php 包含允许用户选择要上传的图像文件的 HTML 表单,则在其中插入

<!DOCTYPE html>
<html>
<head>
    <title>Insert Image in MySql using PHP</title>
</head>
<body>
<?php
$msg = '';
if($_SERVER['REQUEST_METHOD']=='POST'){
    $image = $_FILES['image']['tmp_name'];
    $img = file_get_contents($image);
    $con = mysqli_connect('localhost','root','','admin') or die('Unable To connect');
    $sql = "insert into images (image) values(?)";

    $stmt = mysqli_prepare($con,$sql);

    mysqli_stmt_bind_param($stmt, "s",$img);
    mysqli_stmt_execute($stmt);

    $check = mysqli_stmt_affected_rows($stmt);
    if($check==1){
        $msg = 'Image Successfullly UPloaded';
    }else{
        $msg = 'Error uploading image';
    }
    mysqli_close($con);
}
?>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="image" />
    <button>Upload</button>
</form>
<?php
    echo $msg;
?>
</body>
</html>

save as index.php and run

推荐阅读