2013-06-24 3 views
0

텍스트 상자에 텍스트를 입력하고 많은 양의 텍스트를 입력 한 다음 mySQL 테이블에 배치 할 수없는 문제가 있습니다. 텍스트 영역에 많은 양의 텍스트를 "붙여 넣을"수 있으며 배포 할 수 있습니다. 그러면 mySQL에 제대로 저장됩니다. 그것은 정말로 나에게 어떤 의미를 가지지 않는다!많은 양의 텍스트를 mySQL에 보내기

index.php를

<?php 
include('../config.php'); 
?> 
<html> 
<head> 
<title> </title> 
</head> 
<body> 
<form enctype="multipart/form-data" action="post.php" method="POST"> 
<input type="text" name="title" value=""><br> 
<textarea rows="4" cols="50" placeholder="Message" name="post"> 
</textarea><br> 
<input type="hidden" name="date" value="<?php $script_tz = date_default_timezone_get();if (strcmp($script_tz, ini_get('date.timezone'))){echo date("F j, Y");}?>"><br> 
<input type="hidden" name="timestamp" value="<?php $script_tz = date_default_timezone_get();if (strcmp($script_tz, ini_get('date.timezone'))){echo date("Y-m-d H:i:s");}?>"><br> 
<input type="submit" value="Send" id="send"> 
</form> 
</body> 
</html> 

post.php

<?php 
$title=$_POST['title']; 
$post=$_POST['post']; 
$date=$_POST['date']; 
$timestamp=$_POST['timestamp']; 
mysql_connect("localhost", "root", "root") or die(mysql_error()) ; 
mysql_select_db("root") or die(mysql_error()) ; 
mysql_query("INSERT INTO `posts` VALUES ('$title', '$post', '$date', '$timestamp')") ; 
header('Location: /'); 
?> 

SQL (표가 호출 "게시물")

CREATE TABLE `posts` (
    `title` varchar(200) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, 
    `post` varchar(50000) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, 
    `date` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, 
    `timestamp` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

"날짜"와 "타임 스탬프"에 신경 쓰지 마십시오. 해당 행에 대한 테이블에 게시되는 데이터는 모두 숫자가 아닌 텍스트입니다. 나는 왜 "post"에 많은 양의 텍스트를 써서 mySQL에 저장할 수 없는지 확신 할 수 없다. BLOB, LONGTEXT 및 TEXT를 사용해 보았습니다. 하지만 아무 것도 효과가 없었어 ... 그리고 아이디어?

+2

사용 '텍스트'필드 형식 굵은 글씨 (50000)' – sectus

+0

: 당신은 post_max_size을 바꿀 것 . –

답변

0

MySQL의 varchar() 필드는 65k 바이트를 초과 할 수 있습니다. 문제는 업로드 할 때 PHP가 처리 할 수있는 바이트 수에 제한이 있다는 것입니다. 재정의가 허용 된 경우 .htaccess 또는 php.ini으로 변경할 수 있습니다. 그것이 내가 ... 작동하지 않았다 행한 진술 대신 VARCHAR`의

#set max post size 
php_value post_max_size 5M 

또는

<?php 

    ini_set('post_max_size','5M'); 

?> 
+0

@absoluteer 둘 다 시도했지만 아무 것도 작동하지 않는 것 같습니다. Heroku를 호스팅 제공 업체로 사용하고 있습니다. –

관련 문제