php - 如何使用php将图像存储在mysql的longblob数据类型中

标签 php html mysql

我正在使用 PHP 开发一个 Web 应用程序。我有以下 HTML 表单:

<form action="addHotelDetails.php?action=<?php echo md5("check"); ?>" method="post" name="myform" id="myform" enctype="multipart/form-data"> 
<table cellspacing="5" cellpadding="5" border="0">
<tr>
<td align="right" width="35%" valign="top">Hotel Name</td>
<td><input type="text" name="hotel_name"  style="border:#666633 1px solid;background:none;" value="<?php if(isset($_POST['hotel_name'])) print $_POST['hotel_name']; ?>"  size="20" maxlength="40"/>
</td>
</tr>
<tr>
<tr>
<td align="right" valign="top">City</td>
<td><input type="text" name="city" style="border:#666633 1px solid;background:none;" size="15" value="<?php if(isset($_POST['city'])) print $_POST['city']; ?>" maxlength="95"/>
</td>
</tr>

<tr>
<td align="right" valign="top">State</td>
<td><input type="text" name="state" style="border:#666633 1px solid;background:none;" size="15" value="<?php if(isset($_POST['state'])) print $_POST['state']; ?>" maxlength="95"/>
</td>
</tr>

<tr>
<td align="right" valign="top">Phone Number</td>
<td><input type="text" name="phone_no" style="border:#666633 1px solid;background:none;" size="12" value="<?php if(isset($_POST['phone_no'])) print $_POST['phone_no']; ?>" maxlength="95"/>
</td>
</tr>

<tr>
<td align="right" valign="top">Email ID</td>
<td><input type="text" name="email_id" style="border:#666633 1px solid;background:none;" size="50" value="<?php if(isset($_POST['email_id'])) print $_POST['email_id']; ?>" maxlength="50" />
</td>
</tr>
<tr>
<td align="right" valign="top">Image</td>
<form action="addHotelDetails.php"
method="POST" enctype="multipart/form-data">
<td><input type="file" name="image" style="border:#666633 1px solid;background:none;" size="20" value="<?php if(isset($_POST['image'])) print $_POST['image']; ?>" maxlength="50" />
</td>
</tr>
</form>
<tr>
<td align="right"></td>
<td>
<input type="hidden" name="frmname" value="add_new_hotel" />
<input type="submit" name="submit "value="Submit" style="width:100px; height:35px; font-size:16px;"/>
<input type="button" name="back" value="Back" onclick="parent.location='hotelList.php'" style="width:100px; height:35px; font-size:16px;"/>
<input type="reset" name="reset" value="Reset" style="width:100px; height:35px; font-size:16px;"/>
</td>
</tr>
</table>
</form>     

现在我可以将所有数据发送到我的数据库表,但无法发送图像。我有一个 longblob 数据类型的图像字段。我想从计算机浏览图像并将链接存储在我的表格中。我在php中编写了以下代码来存储数据。请有人在 php 中编辑我的代码,以便将图像链接存储在我的表中。

<?php
include_once "../dbconn.php";

if(isset($_REQUEST['action']) && $_REQUEST['action']==md5("check"))
{
    if(isset($_POST['frmname']) && $_POST['frmname']=='add_new_hotel')
{

      if(strlen(trim($_POST['hotel_name']))==0)
  print '<font style="color:#990000; padding-left: 120px">Please enter the Hotel name!!!</font>';
    else if(strlen(trim($_POST['city']))==0)
        print '<font style="color:#990000; padding-left: 120px">Please enter the city!!!</font>';
    else if(strlen(trim($_POST['state']))==0)
        print '<font style="color:#990000; padding-left: 120px">Please enter the state!!!</font>';
    else if(strlen(trim($_POST['phone_no']))==0)
        print '<font style="color:#990000; padding-left: 120px">Please enter the phone Number!!!</font>';
    else if(strlen(trim($_POST['email_id']))==0)
        print '<font style="color:#990000; padding-left: 120px">Please enter the email id!!!</font>';
    //else if(strlen(trim($_POST['image']))==0)
    //  print '<font style="color:#990000; padding-left: 120px">Please select an image!!!</font>';

    else    
    {   

        $hotel_name = $_POST['hotel_name']; 
        $city = $_POST['city'];
        $state = $_POST['state'];
        $phone_no = $_POST['phone_no']; 
        $email_id = $_POST['email_id']; 
        $image = $_POST['image']; 

        date_default_timezone_set('Asia/Calcutta');


        $sql = "INSERT INTO `hotel_details` (`hotel_name`, `city`, `state`, `phone_no`, `email_id`,`image`)
         VALUES ('$hotel_name', '$city','$state','$phone_no', '$email_id', $image) ";
        $result = mysql_query($sql, $conn);

        if(!$result) {
            print '<font style="color:#990000">Your query not saved. Please try again!!!</font>';
        }
        header("location: hotelList.php?");

    }
}

}

最佳答案

标准方法是将图像存储在服务器文件夹中并将链接保存到数据库。因为在这种情况下我们可以对图像进行进一步的操作。并且将图像保存为longblob,这是一个漫长的过程,并且需要更多时间才能正常保存。

关于php - 如何使用php将图像存储在mysql的longblob数据类型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23440907/

相关文章:

php - 在一维数组中找到 k 最长的序列?

php - 如何显示具有相同ID的多维数组(PHP,Laravel)

html - 属性文件中带有 Thymeleaf -UTF-8 的 Spring Boot CRUD 应用程序

python - 使用 Python 请求获取 html?

php - 显示来自mysql数据库的阿拉伯语数据

php - 使用未定义常量 STDOUT - 假定为 'STDOUT'

php - 如何使用一个参数从PHP中的url中识别variables_x列表?

python - 背页 - 包含 HTML 文件

mysql 等效表达式为 '0000-00-00 00:00:00'

mysql - 使用 NodeJS、MySQL 测量查询执行时间