【问题标题】:I want to add multiple images into MySQL database我想将多个图像添加到 MySQL 数据库中
【发布时间】:2019-02-13 20:54:44
【问题描述】:

我正在我的项目中开发此功能,我想在我的数据库行中添加三 (3) 张图像以及其他详细信息,并且我希望这些图像在一行中的单独列中......到目前为止下面是我的代码。代码还没有工作......图像和文本没有上传到数据库...... 请帮帮我。我究竟做错了什么。谢谢。

下面是我的代码示例:

//PHP部分//

<?php

session_start();
include 'includes/config.php';

if (isset($_POST['post']) && isset($_POST['itemtype'])) {

    $title = mysqli_real_escape_string($link, $_POST['title']);
    $itemtype = mysqli_real_escape_string($link, $_POST['itemtype']);
    $description = mysqli_real_escape_string($link, $_POST['description']);
    $image1 = $_FILES['image1']['name'];
    $image1_tmp_name = $_FILES['image1']['tmp_name'];
    $image2 = $_FILES['image2']['name'];
    $image2_tmp_name = $_FILES['image2']['tmp_name'];
    $image3 = $_FILES['image3']['name'];
    $image3_tmp_name = $_FILES['image3']['tmp_name'];
    $price = mysqli_real_escape_string($link, $_POST['price']);
    $category = mysqli_real_escape_string($link, $_POST['category']);
    $name = mysqli_real_escape_string($link, $_POST['name']);

    //image file directory
    $target1 = 'images/user_ads/'.basename($image1);
    $target2 = 'images/user_ads/'.basename($image2);
    $target3 = 'images/user_ads/'.basename($image3);

    if (move_uploaded_file($_FILES['image1_tmp_name'], $target1)) {

    }
    if (move_uploaded_file($_FILES['image2_tmp_name'], $target2)) {

    }
    if (move_uploaded_file($_FILES['image3_tmp_name'], $target3)) {

    }

    //insert into ost database
    $insert = "INSERT INTO products(Title,Product_Type,Description,Image1,Image2,Image3,Price,Category,Name,PostedDate)VALUES('$title','$itemtype','$description','$target1','$target2','$target3','$price','$category','$name',NOW())";
    $insertKwary = mysqli_query($link, $insert);

    if ($insertKwary) {
        $msg = "<div class='alert alert-danger alert-success'>Product Submitted</div>";
    }else{
        $msg = "<div class='alert alert-danger alert-success'>Product Not Submitted...Try again</div>";
    }
}

?>

//HTML 部分//

<div class="col-md-8 col-md-offset-2">
                    <?php if(isset($msg)) { echo $msg; } ?>
                    <form action="" method="POST" enctype="multipart/form-data" class="postAdForm" id="postAdForm">
                        <div class="form-group">
                            <label for="Ad_title">Item Title</label>
                            <input type="text" name="title" class="form-control title" id="title" required=""/>
                        </div>
                        <div class="form-group">
                            <label for="itemtype">Item Type</label>
                            <select class="form-control" name="itemtype" id="itemtype">
                                <option>Sale</option>
                                <option>Request</option>
                            </select>
                        </div>
                        <div class="form-group">
                            <label for="description">Item Description</label>
                            <textarea name="description" class="form-control description" id="description" rows="7" required=""></textarea>
                        </div>
                        <div class="form-group">
                            <label for="price">First Image</label>
                            <input type="file" name="image1" class="form-control image1" id="image1" required="" />
                        </div>
                        <div class="form-group">
                            <label for="price">Second Image</label>
                            <input type="file" name="image2" class="form-control image2" id="image2" required="" />
                        </div>
                        <div class="form-group">
                            <label for="price">Third Image</label>
                            <input type="file" name="image3" class="form-control image3" id="image3" required="" />
                        </div>
                        <div class="form-group">
                            <label for="price">Price</label>
                            <input type="text" name="price" class="form-control price" id="price" required="" />
                        </div>
                        <div class="form-group">
                            <label for="category">Item Category</label>
                            <select class="form-control" name="category" id="category">
                                <option>Sale</option>
                                <option>Request</option>
                            </select>
                        </div>
                        <div class="form-group">
                            <label for="price">Name</label>
                            <input type="text" name="name" class="form-control name" id="name" required="" readonly="" />
                        </div>
                        <div class="form-group">
                            <input type="submit" name="post" class="btn btn-post post" id="post" value="POST AD" />
                        </div>
                    </form>
                </div>

我还附上了我遇到的错误的图片..

image of web page showing thee errors i get..error gotten

【问题讨论】:

  • $_FILES['image1_tmp_name'] 我相信 $image1_tmp_name 应该与 2 和 3 相同

标签: php mysql image


【解决方案1】:

错误是由于以下几行造成的:

if (move_uploaded_file($_FILES['image1_tmp_name'], $target1)) {
}
if (move_uploaded_file($_FILES['image2_tmp_name'], $target2)) {
}
if (move_uploaded_file($_FILES['image3_tmp_name'], $target3)) {
}

您设置的是 $image1_tmp_name,而不是 $_FILES['image1_tmp_name']。

试试这个:

if (move_uploaded_file($image1_tmp_name, $target1)) {
}
if (move_uploaded_file($image2_tmp_name, $target2)) {
}
if (move_uploaded_file($image3_tmp_name, $target3)) {
}

编辑:使用mysqli_error() 打印错误有助于解决其他问题(在 cmets 中提到)

【讨论】:

  • 好的...谢谢@dustytrash....错误消失了,图片已上传到指定目录...但我的mysql表中没有数据
  • @user3449184 查询是否导致错误?顺便问一下,这些图像列是什么数据类型?
  • 是的,它会导致我指定的错误“产品未提交”......并且对于图像,它们是 VARCHAR 数据类型......它不仅是未提交的图像到数据库,TITLE,DESC......等
  • 您不能使用 Varchar 来存储图像。除非你只是存储位置?至于错误打印 $mysqli->error 代替。例如:$msg = "&lt;div class='alert alert-danger alert-success'&gt;" . $mysqli-&gt;error . "Product Not Submitted...Try again&lt;/div&gt;";
  • 嘿兄弟@dustytrash... amma 说一个非常BIIIG 谢谢.....你救了我....我使用了 $mysqli_error() 它向我展示了字段名称我要发送的名称与我在表中使用的名称不同.....我更改了那个 nd BANG! iit work am soo Greatful Bro.......想问你一些事情......你能不能给你手机号码。也许我们确实建立了这种关系更多
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
相关资源
最近更新 更多