在MySQL数据库中插入图像路径和数据

时间:2016-02-21 08:33:01

标签: php

我有两个页面: displayhotels.php addrooms.php 。当我点击 displayhotels.php 页面上的添加房间链接时,它会获取酒店名称并将其显示在 addrooms.php 页面上。现在,我需要在表格中插入酒店名称和其他变量。由于某种原因,图像路径和数据不存储在db中。但是,图像正在文件夹中更新。

if (!isset($_FILES['image']['tmp_name'])) {
echo "";
}else{
$file=$_FILES['image']['tmp_name'];
$image= addslashes(file_get_contents($_FILES['image']

['tmp_name']));
$image_name= addslashes($_FILES['image']['name']);

        move_uploaded_file($_FILES["image"]

["tmp_name"],"rooms/" . $_FILES["image"]["name"]);
if(isset($_POST['submit']))
{
$image="rooms/" . $_FILES["image"]["name"];
$rnum = $_POST['rnum'];
$rtype = $_POST['rtype'];
$people = $_POST['people'];
$cond = $_POST['cond'];
$price = $_POST['price'];
$rooms = $_POST['rooms'];

$sql = "INSERT INTO `room`(`hotel_name`, `roomNum`,`roomType`, 

`noOfPeople`, `conditions`, `price`, `rooms`, `image`) VALUES 

('$name','$rnum', '$rtype', '$people', '$cond', '$price', '$rooms', 

'$image')";

3 个答案:

答案 0 :(得分:0)

您首先制作了正确的$image变量:

$image="rooms/" . $_FILES["image"]["name"];

但是你用错误的方法覆盖它:

$image = $_POST['image'];

所以你需要删除这一行,我猜你会做得很好。

答案 1 :(得分:0)

很少有调试提示:

首先在代码中添加error_reporting()

比检查您是否通过使用以下方式从HTML表单获取值:

print_r($_POST);

同时检查您是否在输入字段中使用了正确的名称属性?

代码错误:

在您的查询中,您没有定义变量:

$name

您在查询中错过了hotel_name

答案 2 :(得分:0)

如果使用LAMP逐步执行代码,请尝试使用记录器进行调试并使用终端中的tail -f [log file name]。您确定$_POST['submit']已设置好吗?你是如何连接数据库的?这并未在代码中显示。也许文件I / O工作正常(文件夹中的图像更新)但你没有连接到数据库,问题不在于sql语句本身而是实际的连接。

另外,请研究使用预准备语句使代码更安全,而不是直接访问$ _POST变量。有关详细信息,请参阅http://php.net/manual/it/mysqli.quickstart.prepared-statements.phphttp://php.net/manual/en/function.filter-input.php