Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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 - Fatal编程技术网

PHP显示来自mysql数据库的图像

PHP显示来自mysql数据库的图像,php,mysql,Php,Mysql,我遵循以下在线教程:。我很好奇,因为我的代码和他的完全相同,但不起作用。这是我的密码: <?php $msg=""; if(isset($_POST['upload'])){ $target="images/".basename($_FILES['image']['name']); $db=mysqli_connect("localhost","root","","photos"); $image=$_FILES['image']['name']; $t

我遵循以下在线教程:。我很好奇,因为我的代码和他的完全相同,但不起作用。这是我的密码:

<?php
$msg="";
if(isset($_POST['upload'])){
    $target="images/".basename($_FILES['image']['name']);

    $db=mysqli_connect("localhost","root","","photos");

    $image=$_FILES['image']['name'];
    $text=$_POST['text'];

    $sql="INSERT INTO images(image,text)VALUES('$image','$text')";
    mysqli_query($db,$sql);

    if(move_uploaded_file($_FILES['image']['tmp_name'],$target)){
        $msg="Image uploaded succesfully";
    }
    else{
        $msg="There was a problem uploading image";
    }


}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
This is a file upload page where you can upload your picture 
</div>

<?php
    $db=mysqli_connect("localhost","root","","photos");
    $sql="SELECT *FROM images";
    $result=mysqli_query($db,$sql);
    $path="images/";
    while($row = mysqli_fetch_array($result)){
        echo "<div id='img_div'>";
            echo "<img src='images/".$row['image']."'>";
            echo"<p>".$row['text']."</p>";
            echo "</div>";
    }
?>


<form method="POST" action="index.php" enctype="multipart/form-data">
<input type="hidden" name="size" value="100000">
 Choose file:<input type="file" name="image" value="Choose file">
 <textarea name="text" cols="40" rows="4"></textarea>
 <input type="submit" name="upload" value="Upload Image">
</form>

</body>
</html>

我认为问题是由于行echo
处的
单引号引起的所以像这样尝试一次

while($row = mysqli_fetch_array($result)){
    $img = $row['image'];
    echo "<div id='img_div'>";
    echo "<img src='images/".$img."'>";
    echo"<p>".$row['text']."</p>";
    echo "</div>";
}
while($row=mysqli\u fetch\u数组($result)){
$img=$row['image'];
回声“;
回声“;
回显“”$row['text']。“

”; 回声“; }
我认为问题是由于行echo
处的
单引号引起的所以像这样尝试一次

while($row = mysqli_fetch_array($result)){
    $img = $row['image'];
    echo "<div id='img_div'>";
    echo "<img src='images/".$img."'>";
    echo"<p>".$row['text']."</p>";
    echo "</div>";
}
while($row=mysqli\u fetch\u数组($result)){
$img=$row['image'];
回声“;
回声“;
回显“”$row['text']。“

”; 回声“; }
该错误表明提交表单时可能没有文件上载到临时目录。你应该检查一下以确定它是正确的

此外,检查上传错误,以便更好地了解发生了什么,以防文件与请求一起发送

以下是您的代码在以下两个方面的更新:

if(isset($_POST['upload'], $_FILES['image'])){
    $target="images/".basename($_FILES['image']['name']);

    $db=mysqli_connect("localhost","root","","photos");

    $image=$_FILES['image']['name'];
    $text=$_POST['text'];

    $sql="INSERT INTO images(image,text)VALUES('$image','$text')";
    mysqli_query($db,$sql);

   if ($_FILES['image']['error'] !== UPLOAD_ERR_OK) {

      if(move_uploaded_file($_FILES['image']['tmp_name'],$target)){
         $msg="Image uploaded succesfully";
      }
      else{
        $msg="There was a problem uploading image";
      }
    } else {
       echo $_FILES['image']['error'];
    }
}

该错误表明提交表单时可能没有文件上载到临时目录。你应该检查一下以确定它是正确的

此外,检查上传错误,以便更好地了解发生了什么,以防文件与请求一起发送

以下是您的代码在以下两个方面的更新:

if(isset($_POST['upload'], $_FILES['image'])){
    $target="images/".basename($_FILES['image']['name']);

    $db=mysqli_connect("localhost","root","","photos");

    $image=$_FILES['image']['name'];
    $text=$_POST['text'];

    $sql="INSERT INTO images(image,text)VALUES('$image','$text')";
    mysqli_query($db,$sql);

   if ($_FILES['image']['error'] !== UPLOAD_ERR_OK) {

      if(move_uploaded_file($_FILES['image']['tmp_name'],$target)){
         $msg="Image uploaded succesfully";
      }
      else{
        $msg="There was a problem uploading image";
      }
    } else {
       echo $_FILES['image']['error'];
    }
}

您收到了什么错误?警告:当使用
mysqli
时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能非常有害。生成的html源代码是什么样子的?您收到了什么错误?警告:使用
mysqli
时,您应该使用并将用户数据添加到您的查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。生成的html源代码是什么样子的?我不确定单引号是什么问题?
echo”是怎么回事
echo“”不同(除了明显的
$img
vs
$row['image']
)之外。您是否检查了图像文件夹?如果您使用Chrome,请按F12并打开开发工具,查看每个图像,检查src属性指向我按F12的位置并查看图像。它显示bird.jpg是我上传的文件名。这是否意味着src属性指向mysql数据库中的images文件夹??您是否检查了您的图像?我不确定单引号是如何解决问题的?
echo”是怎么回事
echo“”不同(除了明显的
$img
vs
$row['image']
)之外。您是否检查了图像文件夹?如果您使用Chrome,请按F12并打开开发工具,查看每个图像,检查src属性指向我按F12的位置并查看图像。它显示bird.jpg是我上传的文件名。这是否意味着src属性指向mysql数据库中的images文件夹?您是否检查了您的图像?您能告诉我应该在代码的哪一部分插入响应中的两段代码吗?我是php和mysql的初学者。我更新了我的代码。这一次我仍然得到了坏的图像,但在我按下上传图像后,一个“0”出现在“这是一个文件上传页面,您可以上传您的图片”一行的上方。这是否意味着某种类型的错误?您能告诉我应该在代码的哪一部分插入您的响应中的两段代码吗?我是php和mysql的初学者。我更新了我的代码。这一次我仍然得到了坏的图像,但在我按下上传图像后,一个“0”出现在“这是一个文件上传页面,您可以上传您的图片”一行的上方。这是否意味着某种类型的错误?