php - 为什么数据插入 DB w/o errer 但没有插入图像和图像名称

标签 php mysql

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

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

添加员工.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. $_FILES 不包含 'imageName' 键,只包含名称。参见 http://php.net/manual/ro/features.file-upload.post-method.php 2. 确保图像字段类型足够大以存储整个图像内容(转储 $image 的一个 strlen)。使用 Blob 。另外,您确定帖子向您发送了图片吗? 3. 删除回显“pre”...它会扰乱您将用于重定向的 header 指令。

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

关于php - 为什么数据插入 DB w/o errer 但没有插入图像和图像名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40626490/

相关文章:

php - .htaccess 重定向到整洁的 URL

php - 无法找出语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING

php - 将 mysqli_fetch_array 中的项目回显到 html 表 td 标签中未显示

mysql - 如果条件变为 false,如何将查询结果设置为零

javascript - 我的表单提交和 jquery 问题

PHP:用于嵌套 {IF} {ENDIF} 条件的正则表达式

php - CakePHP 单元测试只工作一次,然后我必须重置数据库

mysql查询内部连接变慢

php - 使用 INSERT INTO SELECT 和 VALUES MYSQL PDO

php - 在访问时使用 PHP 从 MySQL 数据库中的 txt 文件导入数据