$query="INSERT INTO `ARTICLES` (`TITLE`, `BY`, `IN`, `POST`)
VALUES('". $title ."', '". $by ."', '". $in ."', '". $_POST['post'] ."')";
このコードは、短い長さのテキストを保存できますが、大きくは保存できません。フィールドのデータ型POST
はlongtextです。また、phpmyadminを介してデータを挿入すると、保存されます。
Felix klingのように、保存しようとするテキストに引用符が含まれている可能性があるため、投稿データをエスケープする必要があると言われていますが、クエリが適切に実行されなくなり、データベースに送信する前にエスケープしないことも大きなセキュリティリスクです.
$post = mysql_real_escape_string($_POST['post']);
$query="INSERT INTO `ARTICLES` (`TITLE`, `BY`, `IN`, `POST`)
VALUES('". $title ."', '". $by ."', '". $in ."', '". $post ."')";
POST
また、phpmyadmin で列をテキストに設定したことを確認してください。十分なスペースを用意しないと、データベースに保存されないためです。
mysqli_stmt::send_long_data を使用することをお勧めします: http://php.net/manual/en/mysqli-stmt.send-long-data.php。マニュアル/コメントにいくつかの良い例があります。
$query="INSERT INTO ARTICLES (TITLE, BY, IN, POST) VALUES('$title', '$by', '$in', '". $_POST['post'] ."')";
このクエリを使用し、PHPmyAdmin を使用してデータベース フィールドのプロパティを BLOB テキストに変更します。
大きなコンテンツを挿入する必要があるときに私のために働きます。
データベースにデータを挿入するには、常にPreparedStatementを使用してください。ユーザーの入力を決して信用しないでください。