0

我遇到了一个问题,我无法在文本框中输入文本,拥有大量文本,然后将其部署到我的 mySQL 表中。虽然我能够在 textarea 中“粘贴”大量文本并进行部署。这会正确保存到 mySQL。这对我来说真的没有任何意义!

索引.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。但是没有任何效果......还有想法?

4

1 回答 1

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');

?>
于 2013-06-24T02:58:18.520 回答