使用html表单将图像添加到数据库中

时间:2016-07-21 00:07:47

标签: php sql

我正在尝试将记录添加到数据库中。每条记录都有相应的图像。记录将被插入到数据库中,但它不适用于图像。我收到此错误"成功连接 注意:未定义的变量:第35行的C:\ xampp \ htdocs \ Syokimaufc \ addplayer.php中的sql 错误:查询为空"我怎么解决这个问题? HTML表单      

     <p> id: <input type="text" name="playerid"/></p>
     <p> Name: <input type="text" name="name"/></p>
     <p> Age: <input type="text" name="age"/></p>
     <p> Position: <input type="text" name="position"/></p>
     <p> Nationality: <input type="text" name="nationality"/></p>
     <p> Photo: <input type="file" name="image"/></p>
 <input type="submit" value="submit"/>

 <form/>

php脚本

    <?php
require 'connection.php';


$id = filter_input(INPUT_POST, 'playerid');
$name = filter_input(INPUT_POST, 'name');
$age = filter_input(INPUT_POST, 'age');
$position = filter_input(INPUT_POST, 'position');
$nationality = filter_input(INPUT_POST, 'nationality');

$_id = mysql_real_escape_string( $id );
$_name = mysql_real_escape_string( $name );
$_age = mysql_real_escape_string( $age );
$_position = mysql_real_escape_string( $position );
$_nationality = mysql_real_escape_string( $nationality );

if (isset($_POST['submit']))
{
    $imageName = mysql_real_escape_string($_FILES ["image"]["iname"]);
    $imageData = mysql_real_escape(file_get_contents($_FILES["image"]["tmp_name"]));
    $imageType = mysql_real_escape_string($_FILES["image"]["iname"]);

    if (substr($imageType,0,5) == "image")
    {
        $sql = "INSERT INTO players ( playerid, name, age, position, nationality, iname, image ) VALUES ( '$_id', '$_name', '$_age', '$_position', '$_nationality', '$imageName', '$imageData' )";
    }
    else
    {
        echo "only images are allowed";
    }
}


if (!mysql_query($sql)){
    die('Error: ' . mysql_error());
}

3 个答案:

答案 0 :(得分:0)

在表单中

尝试添加属性:

<form enctype="multipart/form-data">
......
..
</form>

答案 1 :(得分:0)

你是否在提交中使用了name属性进行了尝试?似乎没有&#34;如果&#34;

<input type="submit" name="submit" value="submit"/>

答案 2 :(得分:0)

只需检查以下步骤:

  1. 在html文件中,应使用enctype =&#34; multipart / form-data&#34;
  2. 设置带图片上传的表单

    e.g。 <form enctype="multipart/form-data>

    1. 在PHP脚本中

      $_FILES["image"]["iname"]错了。

      $_FILES["image"]["name"]应该是正确的。