无法通过php保存mysql中的大文本

时间:2011-05-30 11:43:50

标签: php mysql longtext

$query="INSERT INTO `ARTICLES` (`TITLE`, `BY`, `IN`, `POST`) 
VALUES('". $title ."', '". $by ."', '". $in ."', '". $_POST['post'] ."')";

此代码可以保存较小的文本但不大。 POST字段的数据类型是longtext。 此外,如果我通过phpmyadmin插入数据,它将被保存。

4 个答案:

答案 0 :(得分:5)

像Felix kling一样,你需要逃避你的帖子数据,因为你试图保存的文本中可能有一些引号但它会阻止你的查询正常运行,这也是一个很大的安全风险,在发送之前不要逃避数据库。

$post = mysql_real_escape_string($_POST['post']);

$query="INSERT INTO `ARTICLES` (`TITLE`, `BY`, `IN`, `POST`) 
VALUES('". $title ."', '". $by ."', '". $in ."', '". $post ."')";

还要确保您已将POST列设置为phpmyadmin中的文本。因为如果你没有准备足够的空间,它将不会保存到数据库中。

答案 1 :(得分:0)

$query="INSERT INTO ARTICLES (TITLE, BY, IN, POST) VALUES('$title', '$by', '$in', '". $_POST['post'] ."')";

使用此查询,并使用PHPmyAdmin将数据库字段的属性修改为BLOB文本。

当我需要插入大量内容时,我会为我工作。

答案 2 :(得分:0)

要在数据库中插入数据,请始终使用PreparedStatement!永远不要相信用户输入!

答案 3 :(得分:0)

我建议你使用mysqli_stmt :: send_long_data:http://php.net/manual/en/mysqli-stmt.send-long-data.php。手册/评论中有一些很好的例子。