我有两个页面: 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')";
答案 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.php和http://php.net/manual/en/function.filter-input.php。