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

dra*_*eus 4 php mysql longtext

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

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

Chr*_*phe 5

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

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

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

还要确保POST在phpmyadmin 中将列设置为文本.因为如果没有准备足够的空间,它将无法保存到数据库中.