Добавление текста в базу данных

Я попытался добавить этот текст в базу данных MySQL с помощью PHP и метода $ _POST:

HTML:

<form name="addBook" action="?action=save" method="post" enctype="multipart/form-data"> <table> <tr> <td>Boek naam</td> <td><input type='text' name='book_name' required></td> </tr> <tr> <td>Genre</td> <td><input type='text' name='book_genre' required></td> </tr> <tr> <td>Cover</td> <td><input type='file' name='cover' id='cover'></td> </tr> <tr> <td>Text</td> <td><textarea cols='50' rows='20' name='book_text'>Schrijf hier</textarea></td> </tr> <tr> <td colspan="2"><input type="reset" name="reset" value="Remove text"> <input type="submit" name="submit" value="Save"></td> </tr> </table> </form> 

PHP:

 $query = $db->prepare(" INSERT INTO `books` (`book_name`, `book_text`, `book_genre`, `book_cover`) VALUES (:name, :text, :genre, :fulldir)"); $query->bindParam(':name', $book_name); $query->bindParam(':text', $book_text); $query->bindParam(':genre', $book_genre); $query->bindParam(':fulldir', $fulldir); $query->execute(); 

Это текст:

«Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec metus eget enim egestas rhoncus. Cras id suscit augue. Mauris dignissim semper ligula, non rhoncus mi sollicitudin sed. В hac habitasse platea dictumst. Maecenas non augue eu augue ultrices como a a accsus Magna. Sed luctus nulla libero. Устный перевод felis eu nunc porttitor fermentum at porta felis. Curabitur pulvinar, tortor ut gravida facilisis, eros lectus condimentum metus, cursus dapibus sapien lacus vel nisl. Maecenas rutrum nunc eget convallis imperdiet. Fusce felis ex, vehicleula placerat erat ut, eleifend ensat dolor. Vestibulum fringilla elementum ante, fringilla luctus elit faucibus eget.

Etiam ac enim non nisl elementum dapibus vel quis augue. Sed vestibulum, lacus vitae ultricies dictum, lacus augue sodales justo, sit amet efficitur purus neque vitae magna. Duis malesuada sagittis tortor, in como nisi hendrerit ut. Quisque quis tincidunt odio. Ut cursus enim nec venenatis laoreet. Vestibulum erat diam, egestas vitae scelerisque sed, pulvinar turpis. Curabitur odio justo, ornare eget tortor eu, como condimentum est. Nam dictum, augue time dictum porttitor, mi turpis volutpat eros, tristique metus ipsum nec enim. "

Но когда я добавляю текст, он удаляет пробелы между двумя абзацами:

«Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec metus eget enim egestas rhoncus. Cras id suscit augue. Mauris dignissim semper ligula, non rhoncus mi sollicitudin sed. В hac habitasse platea dictumst. Maecenas non augue eu augue ultrices como a accumsan Magna. Sed luctus nulla libero. Устный перевод felis eu nunc porttitor fermentum at porta felis. Curabitur pulvinar, tortor ut gravida facilisis, eros lectus condimentum metus, cursus dapibus sapien lacus vel nisl. Maecenas rutrum nunc eget convallis imperdiet. Fusce felis ex, vehicleula placerat erat ut, eleifend ensat dolor. Vestibulum fringilla elementum ante, fringilla luctus elit faucibus eget. Etiam ac enim non nisl elementum dapibus vel quis augue. Sed vestibulum, lacus vitae ultricies dictum, lacus augue sodales justo, sit amet efficitur purus neque vitae magna Duis malesuada sagittis tortor, in como nisi hendrerit ut. Quisque quis tincidunt odio. Ut cursus enim nec venenatis laoreet. Vestibulum era t diam, egestas vitae scelerisque sed, pulvinar turpis. Curabitur odio justo, ornare eget tortor eu, como condimentum est. Nam dictum, augue time dictum porttitor, mi turpis volutpat eros, tristique metus ipsum nec enim. "

Как добавить текст в базу данных, сохраняя пробелы между абзацами?

Новый символ строки \n не будет отображаться в браузере. Вам нужно преобразовать их в s. Это можно сделать, используя nl2br либо на вставке данных, либо на выходе. Например:

 $query = $db->prepare(" INSERT INTO `books` (`book_name`, `book_text`, `book_genre`, `book_cover`) VALUES (:name, :text, :genre, :fulldir)"); $query->bindParam(':name', $book_name); $query->bindParam(':text', nl2br($book_text)); $query->bindParam(':genre', $book_genre); $query->bindParam(':fulldir', $fulldir); $query->execute(); 

Демо: http://sandbox.onlinephpfunctions.com/code/ac2f35000833f6c91e2d96bf10a09b96ea182ae8

или по методу вывода …

 echo nl2br($row['book_text']); 

Здесь Inster для этого текста. Измените имя_таблицы и имя поля.

 INSERT INTO `mytable` (`fieldname`) VALUES ('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec metus eget enim egestas rhoncus. Cras id suscipit augue. Mauris dignissim semper ligula, non rhoncus mi sollicitudin sed. In hac habitasse platea dictumst. Maecenas non augue eu augue ultrices commodo a accumsan magna. Sed luctus nulla libero. Ut vitae felis eu nunc porttitor fermentum at porta felis. Curabitur pulvinar, tortor ut gravida facilisis, eros lectus condimentum metus, cursus dapibus sapien lacus vel nisl. Maecenas rutrum nunc eget convallis imperdiet. Fusce felis ex, vehicula placerat erat ut, eleifend consequat dolor. Vestibulum fringilla elementum ante, fringilla luctus elit faucibus eget.\n\nEtiam ac enim non nisl elementum dapibus vel quis augue. Sed vestibulum, lacus vitae ultricies dictum, lacus augue sodales justo, sit amet efficitur purus neque vitae magna. Duis malesuada sagittis tortor, in commodo nisi hendrerit ut. Quisque quis tincidunt odio. Ut cursus enim nec venenatis laoreet. Vestibulum erat diam, egestas vitae scelerisque sed, pulvinar a turpis. Curabitur odio justo, ornare eget tortor eu, commodo condimentum est. Nam dictum, augue tempor dictum porttitor, mi turpis volutpat eros, a tristique metus ipsum nec enim.\"\n\nBut when I add the text, it removes the whitespace between the two paragraphs:\n\n\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec metus eget enim egestas rhoncus. Cras id suscipit augue. Mauris dignissim semper ligula, non rhoncus mi sollicitudin sed. In hac habitasse platea dictumst. Maecenas non augue eu augue ultrices commodo a accumsan magna. Sed luctus nulla libero. Ut vitae felis eu nunc porttitor fermentum at porta felis. Curabitur pulvinar, tortor ut gravida facilisis, eros lectus condimentum metus, cursus dapibus sapien lacus vel nisl. Maecenas rutrum nunc eget convallis imperdiet. Fusce felis ex, vehicula placerat erat ut, eleifend consequat dolor. Vestibulum fringilla elementum ante, fringilla luctus elit faucibus eget. Etiam ac enim non nisl elementum dapibus vel quis augue. Sed vestibulum, lacus vitae ultricies dictum, lacus augue sodales justo, sit amet efficitur purus neque vitae magna. Duis malesuada sagittis tortor, in commodo nisi hendrerit ut. Quisque quis tincidunt odio. Ut cursus enim nec venenatis laoreet. Vestibulum erat diam, egestas vitae scelerisque sed, pulvinar a turpis. Curabitur odio justo, ornare eget tortor eu, commodo condimentum est. Nam dictum, augue tempor dictum porttitor, mi turpis volutpat eros, a tristique metus ipsum nec enim');