Невозможно сохранить большой текст в MySQL через PHP - PullRequest
4 голосов
/ 30 мая 2011
$query="INSERT INTO `ARTICLES` (`TITLE`, `BY`, `IN`, `POST`) 
VALUES('". $title ."', '". $by ."', '". $in ."', '". $_POST['post'] ."')";

Этот код может сохранять текст небольшой длины, но не большой.Тип данных для поля POST - длинный текст.Также, если я вставлю данные через phpmyadmin, они будут сохранены.

Ответы [ 4 ]

5 голосов
/ 30 мая 2011

как и Феликс Клинг говорит, что вам нужно избегать ваших данных постов, потому что, возможно, в тексте есть некоторые кавычки, которые вы пытаетесь сохранить, но это помешает правильному выполнению вашего запроса, а также представляет собой серьезную угрозу безопасности, если вы не уйдете перед отправкой вбазы данных.

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

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

также убедитесь, что для столбца POST установлено значение text в phpmyadmin.Потому что, если вы не подготовите достаточно места, он не сохранится в базе данных.

0 голосов
/ 30 мая 2011

Я предлагаю вам использовать mysqli_stmt :: send_long_data: http://php.net/manual/en/mysqli-stmt.send-long-data.php.В руководстве / комментариях есть несколько хороших примеров.

0 голосов
/ 30 мая 2011

Для вставки данных в базу данных всегда используйте PreparedStatement !Никогда не доверяйте вводу пользователя!

0 голосов
/ 30 мая 2011
$query="INSERT INTO ARTICLES (TITLE, BY, IN, POST) VALUES('$title', '$by', '$in', '". $_POST['post'] ."')";

Используйте этот запрос и измените свойство поля базы данных на BLOB-текст, используя PHPmyAdmin.

Я работаю для меня, когда мне нужно вставить большое содержимое.

...