将大量文本发送到mySQL

时间:2013-06-24 02:35:45

标签: php html mysql database

我遇到了一个问题,我无法在文本框中输入文本,包含大量文本,然后将其部署到mySQL表中。虽然我能够在textarea中“粘贴”大量文本并进行部署。并且适当地保存到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。但没有任何效果......还有想法?

1 个答案:

答案 0 :(得分:0)

MySQL的varchar()字段允许超过65k字节。问题是PHP上传时可以处理的字节数有限制。如果允许覆盖或.htaccess,您可以使用php.ini更改此设置。您可以更改post_max_size

#set max post size
php_value post_max_size 5M

<?php

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

?>