将文本添加到数据库

Adding text to database

我尝试使用 PHP 和 $_POST 方法将此文本添加到 MySQL 数据库:

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 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."

但是当我添加文本时,它删除了两段之间的空格:

"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."

如何将文本添加到数据库中,同时保留段落之间的空格?

这里是这篇文章的指导者。更改表名和字段名。

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');

换行符 \n 不会在浏览器中显示。您需要将它们转换为 <br>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']);