2016-11-16 77 views
1

我必須編碼插入數據與圖像。當我插入信息時,信息將被保存到表格中,除了圖像和圖像名稱將爲空 我不知道問題是什麼?爲什麼數據插入數據庫W/OERERER,但圖像和圖像名稱不插入

該類型的圖像爲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"); 
} 
?> 
+0

不要將文件保存到數據庫中。 http://stackoverflow.com/a/38829952/267540 – e4c5

+0

您應該在您的代碼目錄中創建一個文件夾,並將上傳的文件移至該位置。移動文件成功後,只需將上傳的文件詳細信息(名稱)保存至數據庫。 –

+0

您是否檢查了您是否獲取了文件和名稱的內容。在$ image和$ name變量中。 –

回答

0

即使在DB存儲圖像是一個值得商榷的做法,竟被我試圖告訴你一些問題。 1. $ _FILES不包含'imageName'鍵,只是名稱。請參閱http://php.net/manual/ro/features.file-upload.post-method.php 2.確保圖像字段類型足夠大以存儲整個圖像內容(轉儲$ image的一大串)。使用blob。另外,你是否確定該帖子向你發送圖片? 3.刪除echo「pre」...它打亂您將用於重定向的headers指令。

什麼是sql errorno?另外,請注意安全問題。圖像可以注入大量可執行代碼。最安全的方式(在你的情況下)是創建一個克隆(imagecreate)。

+0

感謝您的意見。我沒有收到任何錯誤號碼。除圖像和圖像名稱外,所有信息都將保存在數據庫中 – Mohammed