Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP PDO更新图像_Php_Mysql_Pdo - Fatal编程技术网

使用PHP PDO更新图像

使用PHP PDO更新图像,php,mysql,pdo,Php,Mysql,Pdo,社区的朋友们好,我正在上传一张图片到MySQL数据库,我没有问题,一切正常。 但当我更新时,图像变为空白,如图所示: 这是我用来更新记录的代码: public function update($id,$fname,$lname,$email,$contact,$imagen,$fecha) { try { if(!empty($_FILES['imagen']['name'])){ $nnombre

社区的朋友们好,我正在上传一张图片到MySQL数据库,我没有问题,一切正常。 但当我更新时,图像变为空白,如图所示:

这是我用来更新记录的代码:

public function update($id,$fname,$lname,$email,$contact,$imagen,$fecha)
    {
        try
        {
            if(!empty($_FILES['imagen']['name'])){
                $nnombre=$_FILES['imagen']['name'];
                $ruta=$_FILES['imagen']['tmp_name'];
                $destino =  "img/productos/".$nnombre;
                $imagen = $nnombre;
                copy($ruta, $destino);
            }

            $stmt=$this->db->prepare("UPDATE productos SET first_name=:fname, 
                                                       last_name=:lname, 
                                                       email_id=:email, 
                                                       contact_no=:contact,
                                                       imagen=:imagen,
                                                       fecha=:fecha
                                                    WHERE id=:id");

            $stmt->bindparam(":fname",$fname);
            $stmt->bindparam(":lname",$lname);
            $stmt->bindparam(":email",$email);
            $stmt->bindparam(":contact",$contact);
            $stmt->bindparam(":imagen",$imagen, PDO::PARAM_STR);
            $stmt->bindparam(":fecha",$fecha);
            $stmt->bindparam(":id",$id);
            $stmt->execute();

            return true;

        }
        catch(PDOException $e)
        {
            echo $e->getMessage();  
            return false;
        }
    }
所有这些都已更新,但图像不更新


我应该这样做。

只有在实际上传图像时才更新图像。当没有图像时,您不应将其包含在
prepare语句中,并在
bindParam
ok中删除它,请解决我的问题:)如果!空{我放入我的代码变量映像}否则{我的代码中不放入变量映像}