php - 无法通过 PHP 代码将多个图像上传到 SQL 数据库

标签 php mysql sql database sql-insert

最近,我尝试将一些包含文本和图像的记录插入到我的数据库中。虽然插入文本没有问题,但图像无法插入。我尝试插入的图像并不重。通常只有几 kb。 我的 .php 文件中是否犯了一些错误?

<?php

// php code to Insert data into mysql database from input text
if(isset($_POST['insert'])){
    $hostname = "localhost";
    $username = "root";
    $password = "";
    $databaseName = "database1";
    // get values form input text and number
    $fname = $_POST['fname'];
      $contact1 = $_POST['contact1'];
      $contact2 = $_POST['contact2'];
     $filename = $_FILES['uploadfile']['name'];
  $filetmpname = $_FILES['uploadfile']['tmp_name'];
   $filename2 = $_FILES['uploadfile2']['name'];
  $filetmpname2 = $_FILES['uploadfile2']['tmp_name'];
  $folder = 'imagesuploadedf/';
   $folder = 'imagesuploadedf2/';
  move_uploaded_file($filetmpname, $folder.$filename);
  move_uploaded_file($filetmpname2, $folder2.$filename2);
    $connect = mysqli_connect($hostname, $username, $password, $databaseName);
    // mysql query to insert data
    $query = "INSERT INTO `tabela`(`name`, `imagename`, `imagename2`, `contact1`, `contact2`) VALUES ('$fname', '$filename', '$filename2', '$contact1', '$contact2')";    
    $result = mysqli_query($connect,$query);
    // check if mysql query successful
    if($result)
    {
        echo 'Data Inserted';
    }
    else{
        echo 'Data Not Inserted';
    }   
    mysqli_free_result($result);
    mysqli_close($connect);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <title> PHP INSERT DATA </title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <form action="index.php" method="post">
            <input type="text" name="fname"  placeholder="First Name"><br><br>
           <input type="file" name="uploadfile" ><br><br>
            <input type="file" name="uploadfile2" ><br><br>
                 <input type="text" name="contact1"  placeholder="Contact1"><br><br>
                    <input type="text" name="contact2"  placeholder="Contact2"><br><br>

            <input type="submit" name="insert" value="Add Data To Database">
        </form>
    </body>
</html>

最佳答案

请尝试

<?php

 // php code to Insert data into mysql database from input text
if(isset($_POST['insert'])){
$hostname = "localhost";
$username = "root";
$password = "";
$databaseName = "database1";
// get values form input text and number
  $fname = $_POST['fname'];
  $contact1 = $_POST['contact1'];
  $contact2 = $_POST['contact2'];
  $filename = $_FILES['uploadfile']['name'];
  $filetmpname = $_FILES['uploadfile']['tmp_name'];
  $filename2 = $_FILES['uploadfile2']['name'];
  $filetmpname2 = $_FILES['uploadfile2']['tmp_name'];
  $folder = 'imagesuploadedf/';
  $folder2 = 'imagesuploadedf2/';

 // edited and added below code. it will check if folder exists and create if not exists.....
 $foldername = 'imagesuploadedf';
 $foldername2 = 'imagesuploadedf2';
 if ( ! is_dir($foldername)) {
     mkdir($foldername);
 }
 if ( ! is_dir($foldername2)) {
    mkdir($foldername2);
  }
 // end of edited and added code


  move_uploaded_file($filetmpname, $folder.$filename);
  move_uploaded_file($filetmpname2, $folder2.$filename2);
  $connect = mysqli_connect($hostname, $username, $password, $databaseName);
  // mysql query to insert data
$query = "INSERT INTO `tabela`(`name`, `imagename`, `imagename2`, `contact1`, `contact2`) VALUES ('$fname', '$filename', '$filename2', '$contact1', '$contact2')";    
$result = mysqli_query($connect,$query);
// check if mysql query successful
 if($result)
 {
     echo 'Data Inserted';
 }
 else{
    echo 'Data Not Inserted';
 }   
 mysqli_free_result($result);
  mysqli_close($connect);
}
?>
<!DOCTYPE html>
 <html>
  <head>
     <title> PHP INSERT DATA </title>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
 <body>
    <form action="index.php" method="post" enctype="multipart/form-data">
        <input type="text" name="fname"  placeholder="First Name"><br><br>
       <input type="file" name="uploadfile" ><br><br>
        <input type="file" name="uploadfile2" ><br><br>
             <input type="text" name="contact1"  placeholder="Contact1"><br><br>
                <input type="text" name="contact2"  placeholder="Contact2"><br><br>

        <input type="submit" name="insert" value="Add Data To Database">
    </form>
</body>
</html>

是否已创建文件夹,即 imagesuploadedfimagesuploadedf2

在添加到数据库之前还要小心并清理输入数据。

关于php - 无法通过 PHP 代码将多个图像上传到 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52034474/

相关文章:

mysql - SQL 语法错误 db_query

mysql - 如何向数据库表中添加新列,表中存在大量数据

mysql - 未找到 SQL 完整性约束父键

php - 使用 Eclipse PDT 或 Aptana 调试 PHP

PHP PDO 新连接 : What effect does selecting the database have?

php - 通过 php 和 mysql 隐藏真实视频/文件 URL 并使用查询

php - 如何在codeigniter中加入两个数据库

php - PHP更新表错误

mysql - 在所有表中搜索特定子字符串

PHP在while循环中回显mysql字段名称