Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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更新MYSQL数据库上的图像信息时出现问题_Php_Mysql_Phpmyadmin - Fatal编程技术网

使用PHP更新MYSQL数据库上的图像信息时出现问题

使用PHP更新MYSQL数据库上的图像信息时出现问题,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我的代码有问题。我无法更新我的图像 这是我的全部代码: index.php //此链接将我的数据发布到下一页 updatepage.php //此页面将获取所有要更新的数据。。。 无法通过编程更改的值。仅通过触发弹出“选择文件”对话框的默认行为 我从示例代码中看到的是,您希望在从数据库检索文件表单控件元素时直接将该值与该元素相关联。那么为什么要把同样的东西存回去呢。不过,如果您想这样做,您可以使用一个值为的隐藏元素,该值将被保存。但是,如果您不希望用户更改它,只需不将其呈现到表单中,并将其从更

我的代码有问题。我无法更新我的图像

这是我的全部代码:

index.php
//此链接将我的数据发布到下一页
updatepage.php
//此页面将获取所有要更新的数据。。。
无法通过编程更改
的值。仅通过触发弹出“选择文件”对话框的默认行为

我从示例代码中看到的是,您希望在从数据库检索文件表单控件元素时直接将该值与该元素相关联。那么为什么要把同样的东西存回去呢。不过,如果您想这样做,您可以使用一个值为的隐藏元素,该值将被保存。但是,如果您不希望用户更改它,只需不将其呈现到表单中,并将其从更新查询中删除,这样它将保持不变


此外,您可以在处理帖子时添加一些逻辑,如果未选择任何文件,则在更新查询中保留“image”字段。

我认为问题在于:

<input type="file" name="image" value="<?php echo $row['image'];?>" />

这里是上传图像的完整代码,这是经过测试并可以正常工作的,但您需要一个名为“upload”的目录(此代码不创建文件夹)

建议只在数据库上存储映像路径

<?php
if(isset($_POST['submit'])){
    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/png")
    || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] < 200000))
    {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
        }
        else
        {
            if (file_exists("upload/" . $_FILES["file"]["name"])){
                echo $_FILES["file"]["name"] . " already exists. ";
            }
            else{
                move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
                echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
                    // HERE YOU CAN WRITE YOU INSERT INTO MYSQL CODE
                    //SOMETHING LIKE THIS:
                    $path = 'assets/article_images/'.$article_id.'/'.$_FILES["image_file"]["name"];
                    $statement1 = "INSERT INTO image_article (article_id, image_path) values ('$article_id', '$path') ";
                    $query_result = mysql_query($statement1) or die($statement1."mysql error<br/><br/>".mysql_error());
                    if($query_result==1){
                        echo 'Image uploaded';
                    }
            }
        }
    }
    else
    {
    echo "Invalid file";
    }
}

?>

<html>
<body>

<form action="index.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

您无法更新文件输入字段,只要在processupdatepage.php中检查文件是否已上载,以防用新数据更新数据库就足够了。请注意,此查询永远不会执行任何操作(可能除了更新自动时间戳和运行触发器)<代码>更新imagename设置image='$image',其中image='$image'它相当于
更新imagename SET image=1,其中image=1。您只是将一列设置为相同的值。
<?php
include("config.php");
$id=$_POST['id'];
$image=$_FILES['image']['name'];
$name=$_POST['name'];
$target = "images/"; 
$target = $target . basename( $_FILES['image']['name']);
$query = "UPDATE imagename SET name='$name', image='$image' WHERE id='$id'";
$bb = mysql_query($query) or die(mysql_error());
if($bb)
{
//Writes the photo to the server 
    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)) 
    {  
      $sql001="UPDATE imagename SET image='$image' WHERE image='$image'";
    mysql_query($sql001);
    } else { } 
    header("Location:index.php");
}
else
{
    echo "Could not be updated";
}
?>
<input type="file" name="image" value="<?php echo $row['image'];?>" />
$img_path = 'get image path from database entry';
<img src= "<?php echo $img_path; ?>"/>
<?php
if(isset($_POST['submit'])){
    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/png")
    || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] < 200000))
    {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
        }
        else
        {
            if (file_exists("upload/" . $_FILES["file"]["name"])){
                echo $_FILES["file"]["name"] . " already exists. ";
            }
            else{
                move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
                echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
                    // HERE YOU CAN WRITE YOU INSERT INTO MYSQL CODE
                    //SOMETHING LIKE THIS:
                    $path = 'assets/article_images/'.$article_id.'/'.$_FILES["image_file"]["name"];
                    $statement1 = "INSERT INTO image_article (article_id, image_path) values ('$article_id', '$path') ";
                    $query_result = mysql_query($statement1) or die($statement1."mysql error<br/><br/>".mysql_error());
                    if($query_result==1){
                        echo 'Image uploaded';
                    }
            }
        }
    }
    else
    {
    echo "Invalid file";
    }
}

?>

<html>
<body>

<form action="index.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>