PHP 图像未在数据库中更新

标签 php mysql sql database

我想更新数据库中的图像。但是当我在我的表单中更新它时,我的数据库中的图像值变为空。

这是我用来更新图像和其他值的 PHP 脚本。 值得注意的是,只有我的图像值清空,数据库中的其余值正在更新。

<?php 
    if(isset($_POST["submit"]) && isset($_GET['id']) && $_GET['id'] == "type") {

    include('config.php');

    $imgFile = $_FILES['user_image']['name'];
    $tmp_dir = $_FILES['user_image']['tmp_name'];
    $imgSize = $_FILES['user_image']['size'];

    if($imgFile)
    {
        $upload_dir = 'user_images/'; // upload directory   
        $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
        $valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
        $userpic = rand(1000,1000000).".".$imgExt;
        if(in_array($imgExt, $valid_extensions))
        {           
            if($imgSize < 5000000)
            {
                unlink($upload_dir.$edit_row['opzoekImage']);
                move_uploaded_file($tmp_dir,$upload_dir.$userpic);
            }
            else
            {
                $errMSG = "Sorry, your file is too large it should be less then 5MB";
            }
        }
        else
        {
            $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";        
        }   
    }
    else
    {
        // if no image selected the old image remain as it is.
        $userpic = $edit_row['opzoekImage']; // old image from database
    }

    $sql2 = "UPDATE tblOpzoek SET opzoekName='".$_POST["typenaam"]."', opzoekValue='".$_POST["typewaarde"]."', opzoekImage='".$userpic."' WHERE opzoekId=".$_POST["typeid"]."";

    if($db->query($sql2) === TRUE) {
        header('Location: ' . $_SERVER['HTTP_REFERER']);
        } else {
        echo "<script type= 'text/javascript'>alert('Error: " . $sql2 . "<br>" . $db->error."');</script>";
        }
    }
?>

这是 config.php 代码:

<?php
   define('DB_SERVER', 'localhost');
   define('DB_USERNAME', 'root');
   define('DB_PASSWORD', 'root');
   define('DB_DATABASE', 'offerteBVDO');
   $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>

更新:

SQL 查询现在输出如下: 更新 tblOpzoek SET opzoekName='Greenline Veranda', opzoekValue='greenline_veranda', opzoekImage='12443.jpg' WHERE opzoekId='1'

但是在数据库中图像没有之前语句中的值。

当我在我的 phpmyadmin 中插入 SQL 查询时它正在运行,为什么它在我的 PHP 中不起作用?

最佳答案

您的更新查询似乎有误,请用这个更新。

$sql2 = "UPDATE tblOpzoek SET opzoekName='".$_POST["typenaam"]."', 
                opzoekValue='".$_POST["typewaarde"]."', 
                opzoekImage='".$userpic."' 
        WHERE opzoekId='".$_POST["typeid"]."'";

关于PHP 图像未在数据库中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49689505/

相关文章:

php - 单击按钮时 SQL 更新表行

php - cookies 的解剖

触发警告时 PHP 不插入 MySQL 行

php - 目标 ="_self"自己神秘地变成了 "_blank"

mysql - Rails 4 通过按货币和计数查询总金额来加入组

mysql - 在mysql中使用子查询获取逗号分隔列表

php - MySQL 触发器 + 通知一个长轮询 Apache/PHP 连接

c# - 一个列可以是另一个sql查询吗

PHP:静默失败的最佳实践

sql - 直接从 iPhone 向在线服务器执行 SQL 查询