为什么数据插入到数据库中没有错误但没有插入图像和图像名称

时间:2016-11-16 07:41:04

标签: php mysql

我必须编码以插入带有图像的数据。当我插入信息时,信息将保存到表格中,但图像和图像名称将为空 我不知道问题是什么?

图像类型为longblob,图像名称为varchar

addEmployee.php

<?php
session_start();
require 'common.php';
$connection = new mysqli($localhost , $dusername , $dpassword,$database);

if ($connection->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

//echo "Connected successfully";
echo "<pre>";
//$EmpID = $_POST['EmpID'];
$SSN = $_POST['SSN'];
$Fname = $_POST['Fname'];
$Lname = $_POST['Lname'];
$PhoneNumber = $_POST['PhoneNumber'];
$Salary = $_POST['Salary'];
$Email = $_POST['Email'];
$JobTitle = $_POST['JobTitle'];
$Password = $_POST['Password'];
$image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
$name = addslashes($_FILES['image']['imageName']);

$query = "INSERT INTO `employee`( `SSN`, `Fname`, `Lname`, `PhoneNumber`, `Salary`, `Password`, `JobTitle`,`Email` , `image` , `name`)";
$query.=                 "VALUES('$SSN','$Fname','$Lname','$PhoneNumber','$Salary','$Password','$JobTitle' ,'$Email' ,'$image' ,'$name')";

$result = mysqli_query($connection, $query);

if (!$result)
{
    echo "1";
    die("Query failed".  mysqli_errno($connection));   
}
else {
    header( "location: admin.html" );
}
?>

1 个答案:

答案 0 :(得分:0)

即使在db中存储图像是一个有争议的做法,我也会试着向你展示一些问题。 1. $ _FILES不包含'imageName'键,只包含名称。见http://php.net/manual/ro/features.file-upload.post-method.php 2.确保图像字段类型足够大以存储整个图像内容(转储$ image的strlen)。使用blob。此外,你确定帖子发送给你的图像? 3.删除echo“pre”...它会扰乱您将用于重定向的headers指令。

什么是sql errorno?另外,请注意安全问题。图像可以在其中注入可执行代码块。最安全的方法(在你的情况下)是创建它的克隆(imagecreate)。