Php 如何插入图像?

Php 如何插入图像?,php,html,mysql,Php,Html,Mysql,下面是我的代码文件。。。 我无法插入图像。获取错误为,未定义变量:image <html> <head> <title> Upload an image </title> </head> <body> <form action="image-disp.php" method="post" enctype="multipart/form-data">

下面是我的代码文件。。。 我无法插入图像。获取错误为,未定义变量:image

<html>
    <head>
        <title> Upload an image </title>
    </head>
    <body>
        <form action="image-disp.php" method="post" enctype="multipart/form-data">
            File:
            <input type="file" name="image" value=iamge><br>
            <input type="submit" value="Upload">
        </form>
        <?php
        mysql_connect("localhost", "root", " ") or die(mysql_error());
        mysql_select_db("mysql") or die(mysql_error());
        echo "connected";
        if (!isset($_FILES['image'] ['tmp_name'])) {
            echo "Choose an image";
        } else {
            echo $image = addslashes($_FILES['image'] ['tmp_name']);
            echo $image_name = addslashes($_FILES['image']['name']);
            echo $image_size = getimagesize($_FILES['image'] ['tmp_name']);
        }
        if ($image_size = FALSE) {
            echo "It's not an image";
        } else {
            $result = "INSERT INTO testblob (image_id, image, image_size) "
                    . "VALUES (' ' ,'$image', '$image_size')";
        }
        echo "inserted";
        ?> 
    </body> 
</html> 

上传图像
文件:


您的错误来自PHP,而不是MySQL。这意味着变量$image没有定义,因为它没有填充任何内容

您的代码不会存储实际图像,而是存储文件名

您需要删除该空间

echo $image = addslashes($_FILES['image']['tmp_name']);
而且,您甚至没有让它执行查询

if ($image_size == FALSE) {
    echo "It's not an image";
} else {
    $result = mysql_query("INSERT INTO testblob (image_id, image, image_size) "
            . "VALUES (' ' ,'$image', '$image_size')");
}

请看这里的一个基本示例:

最好只将图像的名称保存在数据库中,并将文件保存在某个文件夹中

$result = "INSERT INTO testblob ( image, image_size) 
                         VALUES ('$image_name', '$image_size')"; 
然后像这样检索它:

<img src="path/<?php echo $row['image_name'];?>">
“>
首先创建一个表。 Mysql查询

CREATE TABLE storeimage(image\u id tinyint(3)NOT NULL自动增量,image blob NOT NULL,KEY image\u id(image\u id))引擎=MyISAM默认字符集=latin1;

在数据库中存储图像的代码:


文件:


请看下面的问题:这几乎是你问的问题,请看,1)2)如果($image\u size=FALSE),你在
中做错了< /代码> 3)你没有<代码> MySQLYQuase<代码>来执行SQL查询4)给定<代码> IMAGEIII/<代码>是<代码> AutoPosial字段,你不需要把它包含在查询5中)你有一个空间在<代码> $$文件[图像] ['TMPYNAME]中]
6)
mysql\u*
库已被弃用,您应该使用MySQLi或PDO和prepared语句来防止SQL注入,因为您的代码易受攻击!@Prix此处的空间不是问题。但我们仍然对此进行了投票:-pWell基本上,如果他想打印结果,回音应该很好,但我相信他只是想要d将其分配给变量。如果您从未听说过使用手册本身,请避免将w3schools列为源代码。此处允许空格,并且
回音
不会干扰分配。除非这是一个查询-不是结果!