使用PHP在MySQL数据库中存储多个图像

时间:2017-03-02 20:53:23

标签: php mysql database image mysqli

我是PHP的新手。

我正在尝试将带有文本的多个图像添加到数据库中而且我被卡住了。如果我选择一个,它将被存储。如果我选择多个,它在数据库中保留为空白。

我需要帮助来解决这个问题。另外,我很困惑:db中的图像是一个表吗?我的意思是,是否有特殊的数据类型或方法在数据库中的同一条目上有多个图像?

这是我的代码:

<html>
<body>
    <form class="container" enctype ='multipart/form-data' action="add.php" method="post">
        <label><b> Name: </b></label><br><br>
        <input type="text" name="name"><br><br>
        <label><b> Type: </b></label><br><br>
        <input type="text" name="type"><br><br>
        <label><b> Detail: </b></label><br><br>
        <input type="text" name="detail"><br><br>
        <label><b> Area: </b></label><br><br>
        <input type="text" name="area"><br><br>

        Select image to upload:
        <input type="file" name="filename" size='10000' multiple>
        <input type="submit" value="Upload Image">
    </form>
    <?php
        // error_reporting(E_ALL); ini_set('display_errors', 1);

        require_once 'login.php';

        $db_server = mysqli_connect($db_hostname, $db_username, $db_password, $db_database);
        if (!$db_server) die("unable to connect to mysqli:" . mysqli_error());

        mysqli_select_db($db_server, "dbase1") or die("db not selected" . mysqli_error());

        $name = $_POST["name"];
        $type = $_POST["type"];
        $detail = $_POST["detail"];
        $area = $_POST["area"];

        if($_FILES)
        {
            $namee = $_FILES['filename']['name'];
            move_uploaded_file($_FILES['filename']['tmp_name'], $namee);
            echo "uploaded image'$namee'<br><img src ='$namee'>";
        }

        $source= "pictures/".$namee;

        $sql = "INSERT INTO adprop (name, type, text,area,filename) VALUES ('$name','$type','$detail','$area','$source')";
        $db = $db_server->query($sql);
    ?>
</body>
<html>

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

例如,如果要在字段中保存多个图像路径,可以按如下方式将它们添加到db:

/image_folder/image_name1.jpg,/image_folder/image_name2.jpg

并使用splitfor loop在用户界面中动态打印它们。