mysql работает неправильно
В php отправляется html страница в виде текста, её нужно сохранить в mysql.
Страница получается большая, размер страницы заранее не знаем.
Пытаюсь сохранить её так:
$webpage = htmlentities(mysqli_real_escape_string($link, $_POST['webpage']));
$query = "INSERT INTO webpages VALUES (NULL, '$webpage', '$date')";
$save = mysqli_query($link, $query) or die("Error!" . mysqli_error($link));
Что происходит после записи? А ничего не происходит, ничего не записывается.
Если отправить страницу меньше, где-то на 500 тыс. символов, страница сохранится без проблем.
Для меня самое важное сохранить полученную страницу, поэтому пришло только такое решение :
if(strlen($webpage) > 500000){
$wbp1 = substr($webpage, 0, 500000);
$wbp2 = substr($webpage, 500000, strlen($webpage));
$query = "INSERT INTO webpages VALUES (NULL, '$wbp1', '$date')";
$save = mysqli_query($link, $query) or die("Error!" . mysqli_error($link));
$query = "INSERT INTO webpages VALUES (NULL, '$wbp2', '$date')";
$save = mysqli_query($link, $query) or die("Error!" . mysqli_error($link));
}
else{
$query = "INSERT INTO webpages VALUES (NULL, '$webpage', '$date')";
$save = mysqli_query($link, $query) or die("Error!" . mysqli_error($link));
}
Что происходит теперь? Что-то мне не понятное.
Как я уже говорил, размер страницы я заранее знать не могу.
Некоторые страницы сохраняются в 2 записи mysql, а вот некоторые сохраняются в 1 и с обрезанным текстом.
В чём проблема? Я уже несколько дней не могу понять почему оно текст обрезает. Уменьшение до 400000 или 300000 релузьтат не меняют.
Ответы (2 шт):
Не плохое решение для такого, сохранять страницу как файл, а в БД сохранять только адрес на этот файл.
не пробовали изменять тип БД в mysql?
- VARCHAR - Может хранить не более 255 символов.
- TINYTEXT - Может хранить не более 255 символов.
- TEXT - Может хранить не более 65 535 символов.
- MEDIUMTEXT - Может хранить не более 16 777 215 символов.
- LONGTEXT - Может хранить не более 4 294 967 295 символов.