我遇到了一个问题,我无法在文本框中输入文本,包含大量文本,然后将其部署到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。但没有任何效果......还有想法?
答案 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');
?>