我必须编写代码来插入带有图像的数据。当我插入信息时,信息将被保存到表格中,除了图像和图像名称将为空 不知道是什么问题?
图片类型为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/