2013-07-13 3 views
1

안녕하세요. 또 다른 문제가 있습니다. 자습서를 따라 이미지를 데이터베이스에 저장하려고했습니다. 그것은 모든 오류 메시지없이 멋지게 멋지게 작동했지만 어떤 이유로 이미지가 저장되지 않습니다. 아무것도 전혀 보이지 않는다!데이터베이스에 그림을 저장할 수 없습니다. (오류 메시지가 나타나지 않습니다.)

<html> 
<body> 

<form action="test.php" method="POST" enctype="multipart/form-data"> 
<input type="file" name="image"><input type="submit" name="submit" value="Upload" /> 
</form> 
<?php 

if(isset($_POST['submit'])) { 

mysql_connect("localhost","root","") or die("Could not find database!"); 
mysql_select_db("Image") or die("Could not find database!"); 

$imageName = mysql_real_escape_string($_FILES["image"]["name"]); 
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])); 
$imageType = mysql_real_escape_string($_FILES["image"]["type"]); 

if(substr($imageType,0,5) == "image") { 
    mysql_query("INSERT INTO 'blob' VALUES ('','$imageName','$imageData')"); 
    echo "File uploaded!"; 
} 
else 
{ 
    echo "Only images are allowed!"; 
} 

} 

?> 
</body> 
</html> 

데이터베이스 : ID, 이름, 이미지 : INT (자동 증가), VARCHAR (40), (때문에 크기) MEDIUMBLOB는

이에 대한 유일한 이상한 점은 "file_get_contents"입니다 (메모장 ++ 사용). 그렇지 않으면 내가 잘못 된 것을 보지 못한다. 가이드와 기타 등등을 체크했는데, 많은 양의 정보가 저장된 다른 양식 (설명을 포함하여 15 개의 필드)에이 방법을 사용해야 할 필요가있다. 나는 아직도 무엇을 지키고 가장 좋은 방법을 쓰는지를 알기가 어렵다. 그러나 어쨌든 당신이 나를 도울 수 있다면 그것은 굉장 할 것입니다. 아무거나 또는 다만 약간 코멘트를 주시하는 질문이 있으면 다만 코멘트.

+2

자동 증가 필드에 빈 문자열을 전달하지 마십시오. – Musa

+0

mysql_x()를 사용하지 말고 MySQLi 나 PDO를 사용하십시오. 왜 이미지를 데이터베이스에 저장하고 싶습니까? – str

+0

@Musa 그래서 직렬로 변경해야합니까? – Atosag

답변

1

테이블 이름 BLOB는 아포스트로피가 아닌 백틱으로 둘러싸여 야합니다.

그러나이 테이블의 이름을 MySQL에서 예약어가 아닌 것으로 변경하는 것이 좋습니다.

+0

첫 번째 요점에 동의하지만 두 번째 것은 의견의 문제 일뿐입니다. – str

+0

정말 고마워요! 나는 그것을 받아 들일 때까지 몇 분 정도 기다려야한다고 말한다. 최대한 빨리! – Atosag

관련 문제