php - 如何使用 php 更新 sql 中的图像

标签 php mysql image session sql-update

我想更新或设置特定用户的照片,当我尝试上传图像时,图像未上传到我的文件夹“上传”和照片名称(是一个数字,但不是 0,例如:1 .jpg)已插入数据库中,并且数据库中缺少文件扩展名有人可以帮我解决这个问题

这是我的代码:

<?php
session_start();
include("../db_connection.php");

$seller_id = $_SESSION['seller_id'];
$trade_name = $_POST ['trade_name'];
$s_address = $_POST ['s_address'];
$opening_time = $_POST ['opening_time'];
$opening_days = $_POST ['opening_days'];
$order_cutoff = $_POST ['order_cutoff'];
$seller_delivery_time = $_POST ['seller_delivery_time'];
$area_covered_delivery = $_POST ['area_covered_delivery'];
$delivery_fee = $_POST ['delivery_fee'];

 $extension = pathinfo($_FILES['s_image']['name'], PATHINFO_EXTENSION);

$sql = mysqli_query($db, "UPDATE selling_details
                   SET
                   opening_time = '$opening_time',
                   opening_days = '$opening_days',
                   order_cutoff = '$order_cutoff',
                   seller_delivery_time = '$seller_delivery_time',
                   area_covered_delivery = '$area_covered_delivery',
                   delivery_fee = '$delivery_fee'
                   WHERE seller_id= '" . $_SESSION['seller_id'] . "' ");
            if ($sql)
    {
        $id = mysqli_insert_id($db);
        $filename = $id.'.'.$extension;

        if(move_uploaded_file($_FILES['s_image']['tmp_name'], 'upload/'.$filename))
        {
    }
    else
    {
        echo "error occured : " . mysqli_error($db);
    }

$sql2 = mysqli_query($db, "UPDATE seller
                   SET
                   trade_name = '$trade_name',
                   s_address = '$s_address',
                   s_image = '$filename' 
                   WHERE seller_id= '" . $_SESSION['seller_id'] . "' ");
            if ($sql2)
    {

        header('location: seller_menu.php');
    }
    else
    {
        echo "error occured : " . mysqli_error($db);
    }
    }
    ?>

最佳答案

尝试这样...如果您的字段是 varchar 则意味着它可以工作。并且您需要使用 .[concodinate] 运算符声明变量。未经测试检查并让我知道。

$sql2 = mysqli_query($db, "UPDATE seller
               SET
               trade_name = '".$trade_name."',
               s_address = '".$s_address."',
               s_image = '".$filename."' 
               WHERE seller_id= '" . $_SESSION['seller_id'] . "' ");

已编辑:

尝试像这样进行更改,因为如果文件上传完成,则保存到数据库中是正确的方法...如果文件未上传到文件夹中,则在代码中运行第二个 sql2 查询。

if ($sql) {
    $id = mysqli_insert_id($db);
    $filename = $id.'.'.$extension;

    if(move_uploaded_file($_FILES['s_image']['tmp_name'], 'upload/'.$filename)) {
        $sql2 = mysqli_query($db, "UPDATE seller
               SET
               trade_name = '".$trade_name."',
               s_address = '".$s_address."',
               s_image = '".$filename."' 
               WHERE seller_id= '" . $_SESSION['seller_id'] . "' ");
        if ($sql2) {

            header('location: seller_menu.php');
        }else{
            echo "error occured : " . mysqli_error($db);
        }
    }
} else {
    echo "error occured : " . mysqli_error($db);
}

关于php - 如何使用 php 更新 sql 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45540811/

相关文章:

php - 我们向用户提示的详细信息(通过 php 编码)未显示在 MySQL 数据库(本地主机)中

php - Mysqli_fetch_assoc 未存储为 session 变量

shell - 在 Windows 本地运行 mysqldump 命令

mysql - 每当尝试将另一个表中的列作为别名连接时,都会出现 "subquery returns more than one row"错误?

python - 如何将倾斜的指纹图像旋转到垂直直立位置

wpf - 不绑定(bind)图像源的值转换器

javascript - 如何在 Web 应用程序中使用条码扫描器

php - League/Flysystem fstat() 期望参数 1 为资源,给定的对象

php - 如何找到使用最多 CPU 的 PHP 代码行

android - 通过命令行截取的Android屏幕截图的图像格式